zoukankan      html  css  js  c++  java
  • delphi 程 序从exe运行改成dll库

    第一种方法:

    具体步骤:

    1、生成新的或着打开已经存在的工程文件(DPR)(Project1.dpr)。

    2、选择【View】—>【Project Manager】,选中【ProjectGroup】,然后点击【New】按纽新建一个DLL文件;

    3、保存DLL文件,修改DLL文件的名称(ExeToDLLProject)与工程组的名称(ExeToDLLProjectGroup),保存成功后,会生成了一个DLL工程文件(ExeToDLLProject.dpr)和一个工程组文件(ExeToDLLProjectGroup.bpg),这个工程组由DLL和EXE组成(在【View】->【Project Manager】中看到, 选择【View】—>【Project Manager】,选中EXE工程或DLL工程,然后点击【Active】,可以切换当前工作的工程);

    4、点击工具栏上【Add File To Project】,或者使用快捷键【Shift + F11】,把EXE工程文件中的所有的.pas文件加入到DLL工程中,(如:Unit1.pas)   

    5、当EXE工程设为当前活动的工程,然后在工程文件中,添加代码:

    5、把DLL工程设为当前活动的工程,然后【Project】->【View Source】,打开DLL工程的源代码,在里面添加代码:

    library ExeToDLLProject;

    uses

      SysUtils,

      Classes,

      Forms,

      Controls,

      Unit1 in 'Unit1.pas' {Form1},

    {$R *.res}

    function ShowForm:TModalResult; stdcall;

    var

      Form1: TForm1;

    begin

      Form1 := TForm1.Create(nil);

      Form1.ShowModal;

      FreeAndNil(Form1);

      Result := MrNo;

    end;

    exports

      ShowForm; //定义出口函数

    begin

    end.

    第二种方法:

    1、打开项目文件(.DPR),删除单元底部begin和end.之间的所有语句(一般情况下这些语句是由Delphi自动生成的)。如果项目中没有用到Form,则从uses子句中删除表单单元(Form);

    2、可以在单元底部的begin语句之前加入自己定义的其他函数或者过程,用于输出。添加主窗体的输出函数:  

    function ShowForm:TModalResult; stdcall;

    var

      Form1: TForm1;

    begin

      Form1 := TForm1.Create(nil);

      Form1.ShowModal;

      FreeAndNil(Form1);

      Result := MrNo;

    end; 

    3、在单元底部的begin语句之前加入一个exports小节,然后写出所有想要输出的函数或过程的名字(最好指定索引号)。如 exports ShowForm; //定义出口函数

    4、将项目文件顶部的保留字program改为library。  

    5、完成,可以编译了。   
      

    现在就可以在其他程序中调用本项目中的函数和过程了,只要执行ShowForm就可以执行这个项目,和执行原来的可执行文件一模一样。  

  • 相关阅读:
    C# 操作Excel,使用EPPlus
    结构型设计模式之代理模式(Proxy)
    结构型设计模式之组合模式(Composite)
    结构型设计模式之桥接模式(Bridge)
    C#操作windows事件日志项
    C#操作XML序列化与反序列化
    日志组件Log4Net
    UI Automation 简介
    Selenium
    Selenium
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/9466731.html
Copyright © 2011-2022 走看看