我用下面的代码可以正常的执行,只是卸载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 想写一个新组件去继承 两个类 TSOCKETCONNECT 与 TCLIENTDATASET
- 哪个兄弟有delphi2009的序列号?
- 这样转换成 delphi 函数有问题吗?
- windows系統在編輯狀態下按右鍵會彈出編輯菜單,怎樣控制按右鍵時做其它事,比如顯示對話框???
- 请问怎么实现字符查找(请求完整源代码)
- 如何控制 ValueListEditor ?有一个Help这样写道:
- 怎么用DELPHI做一个象OICQ那样的上下滚动的窗体?
- 如何对TTable进行升序排序?
- 如何实时获得话筒的音频信号?
- 高手请进:如何实现不使用插入对象对话框插入一个对象?
- 思路这样,可以实现吗:我的dll中有网上验证功能,并从服务器返回一数据,结构自定义,然后多个EXE(或dll)可不可以直接调用这个数据
- 我是新手,帮忙看看我这里哪里错了呀? 郁闷
Action:=caFree;这句写到哪啊?