Waldteufel hat folgendes geschrieben: |
| Nur das EXTERN bekomm ich irgendwie nicht so ganz mit rein... |
Das weist einen C++-Compiler an, die Funktionsnamen C-kompatibel zu behalten, also ohne C++-typisches Name Mangling.
Allerdings hast du das EXPORT-Macro vergessen, das höchstwahrscheinlich die Funktionen in die Exporttabelle eines PE schreiben soll. Unter Delphi sind entsprechend die Funktionsnamen unter dem Export-Abschnitt einzutragen.
Außerdem
kann das Macro auch eine Spezifizikation des ABI enthalten. In dem Fall müsste man das Macro finden und schauen, ob zum Beispiel stdcall als Calling Convention benutzt wird.
Wenn du den Client allerdings komplett in Delphi neu schreiben willst, kannst du natürlich das Delphi-spezifische ABI verwenden und einfach die Calling Convention weglassen (auch Waldteufels "cdecl").
Für das
char *-Array kann man übrigens auch einfach "array of PChar" verwenden und dann einen Pointer auf das erste Element übergeben. Ich weiß nicht, ob Delphi den Zugriff auf Pointer über einen Index erlaubt. Falls nicht, erleichtert ein Array gegenüber einem Zeiger die Handhabbarkeit, weil man einfach
meinevariable[42] = 'blubb' schreiben kann und nicht aufwändig
PChar(Integer(meinevariable) + 42 * sizeof(PCHar))^ := 'blubb'.
Your computer is designed to become slower and more unreliable over time, so you have to upgrade. But if you'd like some false hope, I can tell you how to defragment your disk.