S
SmileSnake
Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi编了几个Dll。为了叙述方便,我把dll分成两类。<br>A和B,A中的一个函数动态调用B类动态连接库,用到了<br>LoadLibrary 和 FreeLibrary ,<br>A中用了这样的语句调用<br>var<br> HDllInst: THandle;<br> FPointer: TFarProc;<br>begin<br> Result := '';<br> HDllInst := 0;<br> try<br> try<br> HDllInst := LoadLibrary(PChar(DllFile));<br> if HDllInst > 0 then<br> begin<br> FPointer := GetProcAddress(HDllInst, PChar(FuncName));<br> if FPointer <> nil then<br> begin<br> //调用该函数<br> TCreateTableSQLFunc(FPointer)(...);<br> //TCreateTableSQLFunc是一个函数类型。<br> end;<br> end;<br> except<br> Result := '';<br> end;<br> finally<br> if HDllInst > 0 then<br> FreeLibrary(HDllInst);<br> end;<br><br>这样是不是会把所有的资源都释放?<br>我用的是safecall。<br>谢谢!!!<br>