Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: DLL dynamisch laden/ Verwendung in Kompo zur Designzeit

  Alt 14. Sep 2007, 08:24
Hi NuclearPing,

erst mal Dank für deine Antwort.

leider ist das nicht mein Problem. Ich wußte auch nicht so richtg, wie das formulieren sollte.

Der Punkt ist folgender:
Ich mache genau das, was du geschrieben hast.

Delphi-Quellcode:
Handle := LoadLibrary (APluginFileName);
  if (Handle = 0) then
    raise Exception.Create ('TModulePlugin.Create: LoadLibrary failed to load Plugin Module' + #13#10#13#10 +
                            APluginFileName);

  CreateChild := GetProcAddress (Handle, 'CreateChild');
  if @CreateChild = nil then
    raise Exception.Create ('TModulePlugin.Create: Function "CreateChild" not found in Plugin Module');

  GetPluginVersion := GetProcAddress (Handle, 'GetPluginVersion');
  if @GetPluginVersion = nil then
    raise Exception.Create ('TModulePlugin.Create: Function "GetPluginVersion" not found in Plugin');

  {...}
Jetzt habe ich meine Kompo.

Delphi-Quellcode:
  TMyCompo = class(TComponent)
  private
    FAPIVersion: Integer;
    procedure SetAPIVersion(const Value: Integer);
  function GetAPIVersion : Integer;
  protected
  public
    constructor Create(AOwner : TComponent; DLLHandle: Cardinal); reintroduce;
    Destructor Destroy; override;
  published
    property APIVersion : Integer read GetAPIVersion write SetAPIVersion;
  end;


function TMyCompo.GetAPIVersion;
begin
  FAPIVersion := GetPluginVersion; // lesen der versionsnummer aus DLL (Handle hab ich mal weg gelassen, muß ich bei mir nicht angeben
end;
Da passiert bei mir zur Designzeit aber nichts im OI der Compo. Ich denke halt, dass das daran liegt, das die DLL ja noch nicht dynamisch geladen wurde. Erst zur Laufzeit

Gruß oki
42
  Mit Zitat antworten Zitat