Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#8

Re: 2 kleine c++ Fragen

  Alt 9. Feb 2010, 17:47
Delphi-Quellcode:
type
  TPlugIn = class
    // private
    // FErrorMsg: WideString;
  public
    constructor Create; virtual;
    function GetName: WideString; virtual; stdcall; abstract; // hatte jetzt beides auf Widestring umgestellt sprich BSTR
    function GetParentClassName: WideString; virtual; stdcall; abstract;

    // property ErrorMsg: WideString read FErrorMsg write FErrorMsg;
  end;
  // PPlugIn = ^TPlugIn;

  TLoadPlugIn = function(var PlugIn: TPlugIn): Boolean;

  // [...]

procedure TForm1.Button5Click(Sender: TObject);
var
  hLib: Cardinal;
  MLoadPlugIn: TLoadPlugIn;
  PlugIn: TPlugIn;
begin
  hLib := LoadLibrary('PluginB.dll');
  try
    if not(hLib = 0) then
    begin
      @MLoadPlugIn := GetProcAddress(hLib, 'LoadPlugIn');
      if not(@MLoadPlugIn = nil) then
      begin
        if MLoadPlugIn(PlugIn) then // das return aus'm plugin true/false kommt richtig an
          try
            if Assigned(PlugIn) then
              ShowMessage(''); // Diese Statusmeldung bekomme ich nie
            if PlugIn.GetParentClassName = 'TPlugInthen // hier knallts
            begin
              ShowMessage(PlugIn.GetName);
            end
            else
              raise Exception.Create('');
          finally
            PlugIn.Free;
          end;
      end
      else
        raise Exception.Create('');
    end;
  finally
    FreeLibrary(hLib);
  end;
end;
Sebastian