delphi exe转成dll

来源:百度文库 编辑:神马文学网 时间:2024/04/28 17:46:08

delphi exe转成dll

1.生成或打开工程文件(.DPR)
2.选择VIEW菜单的 Project Manager 子菜单,选中PROJECTGROUP,点击NEW按纽新建一个.dll文件;
3.存盘,改变工程组和.DLL文件的名称,存盘成功后到目前为止已经生成了一个工程组,这个组由.dll和.exe组成;
4.把EXE工程文件中的所有.pas文件加入到DLL工程中:点击工具栏上的此按纽 。    
5..打开工程组文件可,选择VIEW-->Project Manager 子菜单,选中.exe文件或.dll文件点击active,可互相切换。
6.打开.dll,选择菜单project-->View Source,生成EXPERT函数:(红色字为手工输入的部分)供外部程序调用。
       library     Pro_simk_kkgl_dll;
       uses
             SysUtils,
Classes,
Forms,
            simk_kkgl in 'simk_kkgl.pas' {Form_kkgl};

       {$R *.RES}
       function fun_name(formpointer:pointer):integer;
       begin
             Application.CreateForm(Tkglform,kglform);//创建自己的模块窗体
             mainf := formpointer;
             kglForm.free;
             result := 0;
       end;
       exports fun_name;//定义出口函数
       begin
       end.
说明:
1)
maif是一个在DLL工程中定义的一个全局的指针,指向公共的窗口
mainf:^Tpublicform; publicform中有公共的函数或参数,可以通过
mainf ^ . 调用;如:mainf ^.Czygh(得到操作员工号)
   2)
开发调试过程中,需要公共窗口提供的所有参数,要在EXE工程文件中(不要定义在。Pas文件中)赋好初值:
例如:
program Pro_simk_kkgl;
uses
   Forms,
   simk_kkgl in 'simk_kkgl.pas' {Form_kkgl},
   mypubfun in '..\ mypubfun.pas' {Form1},
   mypubfuc in '..\ mypubfuc.pas',
   pubfunc in '..\pubfunc.pas' {Form_pubfunc};

{$R *.RES}

begin
   Application.Initialize;
   Application.CreateForm(TForm_kkgl, Form_kkgl);
   Application.CreateForm(TForm1, Form1);
   Application.CreateForm(TForm_pubfunc, Form_pubfunc);
   mainf := @Form_pubfunc;
   mainf^.czygh := 'exetext';
   Application.Run;
end.
即可运行调试程序。  
希望以上能对你们有帮助