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.dll' name '_test';
Das
cdecl ist hier wichtig, weil es angibt, in welcher Reihenfolge und wie die Parameter übergeben werden.