Zitat:
Einfacher wäre es hier, einfach eine zweite Funktion in C einzuführen, die als Parameter kein Byte-Array (char *) annimmt, sondern einen Integer (oder ein Integer-Array).
Das kann ich leider nicht, da ich die
DLL von extern bekommen habe. Hier nun mal ein Beispiel wie ich es jetzt gelöst habe:
Delphi-Quellcode:
//Definition in der DLL
long dllFunction(char* outParam[20], char* inoutParam[20],
const char inParam[20]);
//Definition der Delphi-Function
delphiFunct(outParam PChar; inoutParam PChar;
const inParam PChar) : integer;
stdcall;
@delphiFunct := GetProcAddress(
dll,'
dllFunction');
//Meine Implementation
StrVar1, StrVar2, StrVar3 :
String;
result := delphiFunct(PChar(StrVar1), PChar(StrVar2), PChar(StrVar3));
Ich entnehme der Definition, dass die C++
DLL Char-Arrays erwartet. Soll ich meine Implemenation so belassen oder meine Strings in Char-Arrays konvertieren und dann mit @CharArrVar1[0] etc. der Funktion übergeben?
Ist es egal ob ich eine Variable als PChar(StrVar1) oder als @StrVar1[1] übergebe?