工作列的數量 |
尚未結案
|
kuraki5336
初階會員 發表:13 回覆:35 積分:34 註冊:2010-06-09 發送簡訊給我 |
Dear All
以往我們有兩個Form1,Form2 當在Form1 使用 Form2.Show ; 工具列會呈現 1個Form1 的執行 2個窗體 再引用Dll檔的時候就會是多個。 LoadLibrary(PChar( 'xxxxx.DLL')); @mShowDllFunc := GetProcAddress(mHandle, 'xxxxxx'); 這樣在工具列上就會看到多個的樣子,該如何解決。 |
kuraki5336
初階會員 發表:13 回覆:35 積分:34 註冊:2010-06-09 發送簡訊給我 |
我把我的範例
VCL Form CALL FMX Form 的DLL 會在FreeLibrary 有奇怪的問題 1. 工具列會呈現兩個應用程式且不會消失.... 2. FreeLibrary -> close VclForm 會一直報錯,VCL Form CALL VCL Form 的DLL 就不會有問題。 簡化成簡單的Sample 還請各位高手能指點一下。 https://drive.google.com/file/d/0Bw65pqTUp5t8TXhiMktLVDMwRk0/view?usp=sharing 定義DLL的 unit Unit4; interface uses System.SysUtils, Windows, Dialogs; var CreateFrame: function:Boolean; CloseFrame: procedure; DllHandle : THandle; function LoadLib : Boolean; procedure UnloadLib; implementation function LoadLib : Boolean; begin if DllHandle = 0 then begin DllHandle := LoadLibrary(Pchar(GetCurrentDir '\Project3.dll')); if DllHandle > 0 then begin @CreateFrame := GetProcAddress(DllHandle,'CreateFrame'); @closeFrame := GetProcAddress(DllHandle,'CloseFrame'); end else begin MessageDlg('not found', mtInformation, [mbOK], 0); end; end; Result := DllHandle <> 0; end; procedure UnloadLib; begin if DLLHandle <> 0 then begin FreeLibrary(DLLHandle); DllHandle := 0; end; end; initialization LoadLib; finalization UnloadLib; dpr exports CloseFrame, CreateFrame; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |