Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi C++ DLLs in Delphi (https://www.delphipraxis.net/99977-c-dlls-delphi.html)

urdelphist 20. Sep 2007 11:50


C++ DLLs in Delphi
 
Hi,
ich habe schon einiges gefunden zu diesem Thema, aber nicht alles, was ich brauche, um quasi beliebige DLLs inDelphi einzubinden.

Was mir etwas Probleme bereitet, sind manche Parameter, die übergeben werden müssen.
Schick wäre eine Liste von Typen, die man in DLL-Header findet und dann 1:1 nach Delphi übersetzen kann.
Ungefähr so:

C++ Delphi
char* pChar
int integer

etc.
ich habe z.B. "int& data" als Paramter gefunden. Keine Ahnung, was dem in Delphi entspricht... :roll:

Viele Grüße ans Forum!

SirThornberry 20. Sep 2007 12:40

Re: C++ DLLs in Delphi
 
folgendes sollte dann in der Liste nicht auftauchen
char* pChar

denn der * nach dem Typ ist das gleiche wie in Delphi das ^ vor einem Typ
dementsprechend gilt

char* = ^char
int* = ^integer
etc.

und pchar ist ja auch nichts anderes als ^char.
Ich finde es macht mehr sinn die pointer-Zeichen zu kennen (also * und &) und ansonsten in der Hilfe zu schauen. Wenn man zum Beispiel einen Word in delphi hat schaut man in die Hilfe, sieht das es 2 Byte unsigned ist und sucht dann in der C-Hilfe nach einem Typ der 2 Byte groß und unsigned ist.

Robert Marquardt 20. Sep 2007 13:24

Re: C++ DLLs in Delphi
 
Echte C++-Klassen-APIs als Export aus einer DLL sind faktisch unbenutzbar. Kleinere C++-Erweiterungen gegenueber C wie "int& data" sind aber problemlos uebersetzbar. In diesem Fall bedeutet & einfach echtes call by reference, also "var data: Integer".

chaosben 20. Sep 2007 20:39

Re: C++ DLLs in Delphi
 
Wenngleich Jens mit der Aussage
Zitat:

Zitat von SirThornberry
denn der * nach dem Typ ist das gleiche wie in Delphi das ^ vor einem Typ

sehr wohl recht hat, sei trotzdem darauf hingeweisen, das eine C-Funktion mit dem Typ "char*" mit einem PChar bedient werden sollte.
Deshalb stimmt imho auch die Zuordnung "char* pChar" in der imaginären Liste. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz