我在DLL文件中定义了一个入口函数接收事件
procedure Entry(A:Word);
begin
case A of
DLL_PROCESS_ATTACH:ShowMessage('this is dllprocessattach');
DLL_PROCESS_DETACH:ShowMessage('this is dllprocessdetach');
DLL_THREAD_ATTACH:ShowMessage('this is dllthreadattach');
DLL_THREAD_DETACH:ShowMessage('this is dllthreaddeatch');
end;
end;begin
DLLPROC:=@Entry;
Entry(DLL_PROCESS_ATTACH);
end.然后在单元中调入DLL
procedure TForm1.Button1Click(Sender: TObject);
var
H:THandle;begin
H:=LoadLibrary('project2.dll');
try
if H=0 then
Edit1.Text:='No' else Edit1.Text:='Yes';
finally
FreeLibrary(H);
end;
end;在调入DLL文件的时候可以触发事件.
但用freelibrary()的时候却不能触发DLL_PROCESS_DETACH.这是什么原因?
我用的是D6+WIN2000.
procedure Entry(A:Word);
begin
case A of
DLL_PROCESS_ATTACH:ShowMessage('this is dllprocessattach');
DLL_PROCESS_DETACH:ShowMessage('this is dllprocessdetach');
DLL_THREAD_ATTACH:ShowMessage('this is dllthreadattach');
DLL_THREAD_DETACH:ShowMessage('this is dllthreaddeatch');
end;
end;begin
DLLPROC:=@Entry;
Entry(DLL_PROCESS_ATTACH);
end.然后在单元中调入DLL
procedure TForm1.Button1Click(Sender: TObject);
var
H:THandle;begin
H:=LoadLibrary('project2.dll');
try
if H=0 then
Edit1.Text:='No' else Edit1.Text:='Yes';
finally
FreeLibrary(H);
end;
end;在调入DLL文件的时候可以触发事件.
但用freelibrary()的时候却不能触发DLL_PROCESS_DETACH.这是什么原因?
我用的是D6+WIN2000.
听说这是DELPHI本身的问题.