0

この質問が過去にあった場合は申し訳ありませんが、私は混乱しています!

Delphi にアプリと DLL があります。Dllには、グループボックス内に表示したい(モーダルなし)フォームがあります。メイン アプリでは、ランタイム パッケージを有効にしました。DLL でそれらを無効にすると、次のコードで問題なく動作します。

DLL で:

procedure showInfo(app : Thandle; GB : TGroupBox); stdcall;
begin
   // application.Handle := app; // are the same
    FormSysInfo := TFormSysInfo.CreateParented(GB.handle);
    FormSysInfo.show;
end;

procedure destroyInfo; stdcall;
begin
    FormSysInfo.destroy;
end;

exports showInfo    index 1,
        destroyInfo index 2; 

メインアプリで:

procedure loadSysInfo;
var showInfo : procedure(app : Thandle; GB : TGroupBox); stdcall;
begin
    sysInfo := LoadLibrary('SysInfo.dll');
    if sysInfo <> 0 then begin
        @showInfo := GetProcAddress(sysInfo, 'showInfo');
        @destroyInfo := GetProcAddress(sysInfo, 'destroyInfo');
        if @showInfo <> NIL then      showInfo(application.handle,mainForm.GroupBox8);
    end;
end;

しかし、DLL のランタイム パッケージを有効にするかどうかは表示されませんでした (サイズを縮小したい)。どうすればこれを管理できますか? 前もって感謝します

4

0 に答える 0