Delphi中DLL调用后如何完全释放
答案:1 悬赏:0 手机版
解决时间 2021-03-23 15:15
- 提问者网友:欲望失宠
- 2021-03-22 18:30
Delphi中DLL调用后如何完全释放
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-03-22 18:57
Delphi有静态加载Dll和动态加载Dll,静态加载的Dll不用我们释放;动态加载需要我们自己释放;
这里只附上动态加载DLL的释放(此处Dll和Exe程序在同一路径下):
procedure TForm1.Button2Click(Sender: TObject);
var MyHandle:THandle ;
FPointer:Pointer;
MyDll_Func: function (s:string):Integer;stdcall;
begin
try
try
MyHandle:=LoadLibrary('project1.Dll') ;
if MyHandle<>0 then
begin
FPointer:=GetProcAddress(MyHandle ,PChar(Edit1.text));
if FPointer<>nil then
begin
MyDll_Func:=FPointer;
MyDll_Func(Edit1.text) ;
end
else
ShowMessage('此'+Edit1.text+'方法,在project1.Dll中不存在');
end
except
showmessage('加载project1.Dll异常');
end;
finally
FreeLibrary(MyHandle) ;
end;
end;
这里只附上动态加载DLL的释放(此处Dll和Exe程序在同一路径下):
procedure TForm1.Button2Click(Sender: TObject);
var MyHandle:THandle ;
FPointer:Pointer;
MyDll_Func: function (s:string):Integer;stdcall;
begin
try
try
MyHandle:=LoadLibrary('project1.Dll') ;
if MyHandle<>0 then
begin
FPointer:=GetProcAddress(MyHandle ,PChar(Edit1.text));
if FPointer<>nil then
begin
MyDll_Func:=FPointer;
MyDll_Func(Edit1.text) ;
end
else
ShowMessage('此'+Edit1.text+'方法,在project1.Dll中不存在');
end
except
showmessage('加载project1.Dll异常');
end;
finally
FreeLibrary(MyHandle) ;
end;
end;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯