我用下面的代码可以正常的执行,只是卸载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;
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;
解决方案 »
- Delphi使用TMD
- Delphi 1~2007 各版本Ftp下载,delphi爱好者不容错过哦
- 请问哪里有比较全的关于delphi命名规则的网页
- 怎样用程序修改winXp的外观?
- 关于TList高手支招!在线等待……
- 请教一个很菜的问题self.perform(WM_KEYDOWN,VKRETURN,0);(对不起,小弟没分了。)
- 怎么将机器上QQ的端口封住
- 怎么在*.exe 程序执行时,执行我的一个exe 程序
- SENDER和小问题
- 想了解一下:要学好计算机——特别是编程,就一定得学好数学?
- 思路这样,可以实现吗:我的dll中有网上验证功能,并从服务器返回一数据,结构自定义,然后多个EXE(或dll)可不可以直接调用这个数据
- 我是新手,帮忙看看我这里哪里错了呀? 郁闷
Action:=caFree;这句写到哪啊?