Delphi exe動態呼叫載入bpl 報地址錯誤的解決方法
阿新 • • 發佈:2019-02-04
載入bpl:
ModuleInstance1: HMODULE;
ModuleInstance1 := LoadPackage('TestA.bpl');
顯示視窗:
var
frm: TCustomForm;
begin
frm := CreateFormByClassName('TTestForm');
try
frm.ShowModal;
finally
frm.Release;
end;
end;
function CreateFormByClassName(const ClassName: string): TCustomForm;
var
AClass: TPersistentClass;
begin
AClass := GetClass(ClassName);
If AClass = nil then
exit;
Result := TComponentClass(AClass).Create(Application) as TCustomForm;
// 或Result:=TCustomForm(TComponentClass(AClass).Create(Application));
end;
------------------------------------------------------------------------------------------------------------------------
問題出現在取值AClass時總提示為nill,
原因可能為:主程式exe沒有勾選 build with run package