Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Funktion einer C++ Dll in Delphi aufrufen

  Alt 11. Mär 2006, 19:22
Von C++ exportierte Funktionsnamen sind sog. mangled names. Sie enthalten informationen über die Parameter usw. Jeder C++ Compiler generiert da seine eigenen Namen.
Da C++ Compiler auch C Compiler sind, kannst du die Funktionen als C-Funktionen exportieren.
Code:
extern "C" {

__declspec( dllexport ) char* test()
{
   return "Hello World";


}
Hast du das ganze mit dem Borland C++ Compiler kompiliert, lautet der Funktionsnamen nun "_test". Mit MSVC ist es ein schlichtes "test".

In Delphi kannst du die Funktion nun leicht importieren:
function test: PChar; cdecl; external 'Project1.dllname '_test'; Das cdecl ist hier wichtig, weil es angibt, in welcher Reihenfolge und wie die Parameter übergeben werden.
  Mit Zitat antworten Zitat