この質問が過去にあった場合は申し訳ありませんが、私は混乱しています!
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 のランタイム パッケージを有効にするかどうかは表示されませんでした (サイズを縮小したい)。どうすればこれを管理できますか? 前もって感謝します