delphi 在DLL中添加窗体

方案一:

  在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文件.


转自:http://www.cnblogs.com/Mckk/p/5272648.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值