如何加载和卸载带有窗口的DLL(20)

  • 主题发起人 主题发起人 xf_z
  • 开始时间 开始时间
X

xf_z

Unregistered / Unconfirmed
GUEST, unregistred user!
我用下面的代码可以正常的执行,只是卸载DLL的时候出错,应该怎么做啊? procedure ThreadProc(p : pointer); stdcall; begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end; procedure DllMain(dwReason : DWORD); var dwThreadID : DWORD; begin case dwReason of DLL_PROCESS_ATTACH : begin hThreadHandle := CreateThread(nil, 0, @ThreadProc, nil, 0, dwThreadID); end; DLL_PROCESS_DETACH : begin if (hThreadHandle <> 0) then begin form1.Close; //这样卸载不行啊,form1.free也不行 TerminateThread(hThreadHandle, 0); end; end; DLL_THREAD_ATTACH : begin end; DLL_THREAD_DETACH : begin end; end; end;
 
Action:=caFree;试一下~~
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
773
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部