私はBPLを使用してdelphi2010でモジュラーアプリケーションを作成しようとしています。 問題BPL内でクラスを作成しようとすると、このエラーメッセージが表示されます。Delphi:リソースが見つかりませんでしたか?
私は、リソース(RESファイル)について何も操作をしませんでした!
Procedure TControllerMain.Btn1OnClick(Sender: TObject);
type
TInitProcedure = function: TModuleBaseClass; stdcall;
TModuleBaseClass= class of TModuleBase;
var
h: HMODULE;
proc: TInitProcedure;
vClass: TModuleBaseClass;
begin
h := LoadPackage('test.bpl');
@proc := GetProcAddress(h, 'InitializePlugin');
vClass := proc();
vClass.Create(nil); // error here
UnloadPackage(h);
end;
DLLコード
TModuleBaseがTCustomPanel
type
TVLCVideo = class(TModuleBase)
private
...
public
...
end;
function InitializePlugin: TModuleBaseClass; stdcall;
implementation
function InitializePlugin: TModuleBaseClass;
begin
Result := TVLCVideo;
end;
exports
InitializePlugin;
end.
の主なアプリケーションを構築する必要がありますが、 'TModuleBase'がTForm''由来している場合にのみ、 'TFrame'、または' TDataModule'であり、 'TCustomPanel'からではありません。 –
Okey、dllでコンポーネントを使用する方法はありますか?私はActiveXコンポーネントを作成したくありません – relativ
'InitializePlugin()'がクラス型ではなくインスタンス化されたオブジェクトを返す場合、同じ問題がありますか?エラーが発生したときのコールスタックの外観は何ですか? –