打开一个程序的安装目录,在这里面可以看到一些dll的一些文件。如果在它的上面双击的话会在它的旁边提示:如果是想要查看它可以下载安装一个叫exescope的自定义应用软件的工具。
右边有一个更多,点击一下“更多”,可以看到它的默认安装路径,如果不需要更改的话,它就会默认的安装到c盘的程序文件夹中。
点击安装之后,在它d出的面板中有一个自动汉化的说明,我们点击“已阅”。接着在它的安装过程中会出现一个安装类型,可以根据需要选择一个安装类型,这里就选择它默认的“典型安装”,然后点击:下一步。颂唤唯当安装到汉化的安装目录的时候它会提示,如果是不想把它安装到默认位置的话,可以在点击浏览选择一个安装的文件位置。
Delphi有静态加载带塌Dll和动态加载Dll,静态加载的Dll不用我们释放;动态加载需要我们自己释放;这里只附上动态加载DLL的释放(此处Dll和Exe程缓行碧扰举序在同一路径下):
procedure TForm1.Button2Click(Sender: TObject)
var MyHandle:THandle
FPointer:Pointer
MyDll_Func: function (s:string):Integerstdcall
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
如果你是以DllImport这样的方式装载非托管库的话,释放的方法应该在你的类库写好的,就漏纤销跟加载钩子带卸载钩子一样。这个真不知竖兆道如何去卸载了。如果是通过kernel32Api动态加载的话,这个Api已经提供卸载类返游库的方法了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)