線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:302
推到 Plurk!
推到 Facebook!

工作列的數量

尚未結案
kuraki5336
一般會員


發表:10
回覆:19
積分:20
註冊:2010-06-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2016-10-28 16:20:14 IP:114.46.xxx.xxx 未訂閱
Dear All 

以往我們有兩個Form1,Form2 當在Form1 使用 Form2.Show ;

工具列會呈現 1個Form1 的執行 2個窗體

再引用Dll檔的時候就會是多個。

LoadLibrary(PChar( 'xxxxx.DLL'));
@mShowDllFunc := GetProcAddress(mHandle, 'xxxxxx');

這樣在工具列上就會看到多個的樣子,該如何解決。

kuraki5336
一般會員


發表:10
回覆:19
積分:20
註冊:2010-06-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2016-10-29 17:18:52 IP:114.38.xxx.xxx 未訂閱
我把我的範例
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
這是VCL的Source
procedure TForm1.Button3Click(Sender: TObject);
begin
if DllHandle > 0 then
CreateFrame;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
CloseFrame;
end;
定義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;
Dll

function CreateFrame:Boolean;
procedure CloseFrame;

implementation

{$R *.fmx}

function CreateFrame:Boolean;
begin
Form2 := TForm2.Create(Application);
Form2.show;
end;

procedure CloseFrame;
begin
Form2.free;
end;
dpr

exports
CloseFrame,
CreateFrame;
系統時間:2017-12-16 15:21:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!