J'essaie de faire une application modulaire dans delphi2010 en utilisant BPL. Problème: lorsque j'essaie de créer une classe dans BPL, j'obtiens ce message d'erreur.Delphi: Erreur de ressource introuvable?
Je ne l'ai pas toute opération sur les ressources (fichier 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;
code dll
TModuleBase est un TCustomPanel
type
TVLCVideo = class(TModuleBase)
private
...
public
...
end;
function InitializePlugin: TModuleBaseClass; stdcall;
implementation
function InitializePlugin: TModuleBaseClass;
begin
Result := TVLCVideo;
end;
exports
InitializePlugin;
end.
Ce genre d'erreur se produirait pendant le streaming DFM, mais seulement si 'TModuleBase' étaient provenant de' TForm' , 'TFrame', ou' TDataModule', pas de 'TCustomPanel'. –
Okey, pouvez-vous me dire s'il y a un moyen d'utiliser des composants dans dll? Je ne veux pas créer un composant ActiveX – relativ
Avez-vous le même problème si 'InitializePlugin()' renvoie un objet instancié au lieu d'un type de classe? À quoi ressemble la pile d'appels lorsque l'erreur se produit? –