Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#19

Re: C++ DLL in Delphi einbinden

  Alt 13. Feb 2007, 11:27
Knapp daneben:
Delphi-Quellcode:
function CreatePlayer(hWndParent: HWND; var rectPlayer: TRect;
         szWndTitle: PChar): Integer; cdecl; external 'lib\PlayerLib.dll';
Das & in der C++-Deklaration bedeutet Call-by-Reference. Es gibt drei Arten dies nach Delphi zu konvertieren.
"rectPlayer: PRect" reflektiert das auf dem Stack letztlich ein Pointer auf ein TRect uebergeben wird.
"var rectPlayer: TRect" ist die korrekte Konversion wenn die Funktion den Inhalt des TRect aendert.
"const rectPlayer: TRect" funktioniert wenn der Inhalt des TRect nicht von der Funktion geaendert wird. Es wird ausgenutzt das Delphi bei const Parametern mit mehr als 4 Bytes ein implizites Call-By-Reference macht.

Ich habe die sichere var-Variante gewaehlt.
  Mit Zitat antworten Zitat