Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Objekt in einer DLL kapseln

  Alt 24. Apr 2007, 12:31
Exportieren kann man nur einfache Funktionen. Du musst also ein Funktions-API stricken. Das sollte einfach sein, da du ja nur genau ein Objekt in einer globalen Variablen hast.

Delphi-Quellcode:
library DLL;

uses
  SysUtils,
  Classes;

var
  Geraet: TGeraet;

function Seriennummer: Cardinal;
begin
  Result := Geraet.Seriennummer;
end;

// wie man das Objekt beim Entladen der DLL brav freigibt

procedure LibExit(Reason: Integer);
begin
  if Reason = DLL_PROCESS_DETACH then
    FreeAndNil(Geraet);
end;

exports
  Seriennummer;

begin
  DLLProc := LibExit;
  Geraet := TGeraet.Create;
end
  Mit Zitat antworten Zitat