I iamyourneed Unregistered / Unconfirmed GUEST, unregistred user! 2006-03-13 #1 dll申明函数<br>procedure pLoadLang(var App: TApplication); stdcall;<br>在调用时,使用<br>App := application;<br> pLoadLang(App);<br>但是在关闭程序时,报错。
dll申明函数<br>procedure pLoadLang(var App: TApplication); stdcall;<br>在调用时,使用<br>App := application;<br> pLoadLang(App);<br>但是在关闭程序时,报错。
风 风林坡 Unregistered / Unconfirmed GUEST, unregistred user! 2006-03-13 #2 procedure pLoadLang(const AppWnd: THandle); stdcall;<br>begin<br> Application.Handle := AppWnd;<br> .......<br>end;<br>调用:<br>pLoadLang(Application.Handle);
procedure pLoadLang(const AppWnd: THandle); stdcall;<br>begin<br> Application.Handle := AppWnd;<br> .......<br>end;<br>调用:<br>pLoadLang(Application.Handle);
I iamy Unregistered / Unconfirmed GUEST, unregistred user! 2006-03-13 #3 在释放的时候可能造成了Application的重复释放<br>在Dll的工程文件中加上这个<br><br>implementation<br><br><br><br><br>procedure ExitDLL(Reason: Integer);<br>begin<br> if Reason = DLL_PROCESS_DETACH then<br> begin<br> Application := DLLApp;<br> end;<br>end;<br><br>initialization<br> DLLAPP := Application;<br> DLLProc := @ExitDLL;<br><br>end.
在释放的时候可能造成了Application的重复释放<br>在Dll的工程文件中加上这个<br><br>implementation<br><br><br><br><br>procedure ExitDLL(Reason: Integer);<br>begin<br> if Reason = DLL_PROCESS_DETACH then<br> begin<br> Application := DLLApp;<br> end;<br>end;<br><br>initialization<br> DLLAPP := Application;<br> DLLProc := @ExitDLL;<br><br>end.
I iamyourneed Unregistered / Unconfirmed GUEST, unregistred user! 2006-03-13 #4 to :风林坡<br>我在调用的时候,handle传入的时候报错,为什么要申明为const呢<br>to:iamy<br>你的那段是加在dll里面吗,不知道加在那,加了以后我的编译就过不了了,好象是说找不到该函数的定义,我的所有函数和过程都报错了。
to :风林坡<br>我在调用的时候,handle传入的时候报错,为什么要申明为const呢<br>to:iamy<br>你的那段是加在dll里面吗,不知道加在那,加了以后我的编译就过不了了,好象是说找不到该函数的定义,我的所有函数和过程都报错了。
T tranke Unregistered / Unconfirmed GUEST, unregistred user! 2006-03-13 #5 类对象不能传给外部DLL!<br>你应该实用句柄来传递,就照“风林坡”说的来做就可以了!
I iamy Unregistered / Unconfirmed GUEST, unregistred user! 2006-03-13 #6 加在Dll的工程文件里<br>procedure ExitDLL(Reason: Integer);<br>begin<br> if Reason = DLL_PROCESS_DETACH then<br> begin<br> Application := DLLApp;<br> end;<br>end;<br><br>initialization<br> DLLAPP := Application;<br> DLLProc := @ExitDLL;<br>主要是这一端
加在Dll的工程文件里<br>procedure ExitDLL(Reason: Integer);<br>begin<br> if Reason = DLL_PROCESS_DETACH then<br> begin<br> Application := DLLApp;<br> end;<br>end;<br><br>initialization<br> DLLAPP := Application;<br> DLLProc := @ExitDLL;<br>主要是这一端