程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> delphi 在DLL中添加窗體.,delphidll添加窗體

delphi 在DLL中添加窗體.,delphidll添加窗體

編輯:Delphi

delphi 在DLL中添加窗體.,delphidll添加窗體


方案一:

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

 

  

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved