初学Delphi注意:怎样将.exe转化为.dll文件

时间:2023-02-06 06:41:07
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.
即可运行调试程序。

2 个解决方案

#1


楼上兄弟,你好,在你的程序中maif,mypubfun.pas ,'simk_kkgl.pas ' ,我看得不是很明白,能不能在详细些,兄弟正急将一个将exe文件做成dll,供 PB调用。请帮帮忙。

#2


留个记号,以后回来看。

#1


楼上兄弟,你好,在你的程序中maif,mypubfun.pas ,'simk_kkgl.pas ' ,我看得不是很明白,能不能在详细些,兄弟正急将一个将exe文件做成dll,供 PB调用。请帮帮忙。

#2


留个记号,以后回来看。