您的位置:首页 > 编程语言 > Delphi

delphi 在DLL中添加窗体.

2020-02-16 14:03 441 查看

方案一:

  在DLL工程中新建一个FORM窗体.在窗体中加入如下代码:

  1.首先需要再 implementation 之前声明下以下函数.

1  procedure SynApp(App:THandle);stdcall;
2
3    begin
4
5     Application.Handle := App ;  
6
7    end;
8
9
10   Procedure ShowForm;stdcall ;
11
12   begin
13
14     MainForm := TMainForm.Create(Application);
15
16     MainForm.show ;
17
18   end;

 

  2.在DLL文件中导出表写入:

  

1 exports
2
3   SynApp,
4
5   ShowForm;

 

  3.让窗口显示需要传入进程句柄.

1 SynApp(Application.Handle);
2
3   ShowForm;

 

  完成.

方案二.此方案来自郁金香老师.

  1.新建DLL.在DLL文件中添加一个FORM.

  先在DLL文件中添加如下关键代码:

  

1 if Form1 = nil then begin Form1.:= TForm1.Create(nil);
2
3   Form1.Visable: = not From1.Visable ;
4
5   end;
6
7       //但是这样子会有问题..如果卸载这个DLL的时候,相应的程序也会跟着退出.
8
9   //所以必须写一个加载卸载处理函数
10
11   procedure DllEnterProc(reason:integer);
12
13   begin
14
15     case reason of
16
17     windows.DLL_PROCESS_ATTACH: begin end;
18
19     windows.DLL_PROCESS_DETACH:begin Form1.Free;Form1.nil; end;
20
21   end;
22
23   

  在最后一个end.  之前添加如下关键代码:

  

1 dllProc:=@DllEnterProc ;

 

  完成..这样既可创建含有窗体的DLL文件.

 

  

 

转载于:https://www.cnblogs.com/Mckk/p/5272648.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
Seattle2013 发布了0 篇原创文章 · 获赞 0 · 访问量 88 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: