Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#3

Re: C++-Lib/Dll in Delphi einbinden

  Alt 12. Nov 2005, 14:18
Zitat von Der_Unwissende:
4) Alle Typen haben ein Pendant in der anderen Sprache (ok, stark verallgemeinert, sollte aber so ziemlich keinen Typen geben auf den das nicht zutrifft).
Naja, ein wenig zu verallgemeinert. Auf die Strings bist du ja schon selbst gestoßen, dynamische Arrays gehören auch dazu. Im Prinzip alles, was mit Delphis Compiler-Magic zu tun hat, ist nicht sehr angenehm in C(++) zu verwenden. Prinzipiell existieren aber alle Typen von C (nicht C++) auf irgendeine Art und Weise auch in anderen Sprachen. Darüber hinaus sind Klassen aufgrund unterschiedlichem ABI meist nicht über mehrere Compiler hinweg zu benutzen. Und wo wir schon bei der ABI sind: man sollte sich für die Kommunikation auf eine Aufrufkonvention einigen

Zitat von Der_Unwissende:
aber C++ kennt dafür ein PChar
Aua! std::string Da das aber 'ne Klasse ist, gips die in dieser Form nicht in Delphi.
Zitat von Der_Unwissende:
(*Char oder so).
Fast, "char *"

Zitat von Der_Unwissende:
Bei Delphi Methoden wird natürlich immer pascal (schau mal in die Hilfe, vielleicht heißt es doch anders) benutzt, die meisten C/C++ DLLs die ich benutzt hatte, waren stdcall oder selten mal cdecl (kann dein Kumpel aber auch festlegen).
Nicht zwangsläufig. Ich kann auch bei Delphi festlegen, welche Aufrufkonvention meine Funktion haben soll, und die "normale" Aufrufkonvention in C und C++ ist cdecl. stdcall sind alle Funktionen der Windows-API, weil stdcall prinzipiell die portabelste Aufrufkonvention ist (architektur- und sprachunabhängig). Und weil man das praktishc fand, exportieren viele DLLs von Drittherstellern ihre Funktionen auch als stdcall.


Zu DLLs kann ich Ollis Tutorial wärmstens empfehlen, ich kenne keinen besseren Text über das Thema.
  Mit Zitat antworten Zitat