Danke für die Antwort - aber auch bei einem
besteht das Problem.
Ich habe nochmal weiter geforscht - das Problem ist vermutlich die Übergabe des Arrays (const TNumber PaArrID). Wenn ich mir den 2. Parameter der Funktion von der
DLL ausgeben lasse, dann passt der - nur die Werte im Array stimmen nicht - sie kommen also schon on der
DLL nicht korrekt an.
Ich bin leider nicht so erfahren in c++ und komme irgendwie aktuell gar nicht weiter.
EDIT:
Ok, ich habe mir mal aus der
DLL das übergebene "Array" (TNumber) ausgeben lassen (das hat ja genau 4 Elemente a 1 Byte = 4 Bytes). Wenn ich mir dazu in c++ die Adresse von diesem Array ausgeben lasse, dann stimmt diese mit den Werten aus der
DLL überein:
Code:
id[0] = 0x10;
id[1] = 0x20;
id[2] = 0x30;
id[3] = 0x40;
printf("Zeiger von id: %#.8x", id); // Das sind genau die Werte, die in der
DLL ankommen
// Zeiger von id: 0x0041f940
res = GetData(id, position);
// in der
DLL kommt an:
// id[0] = 0x40
// id[1] = 0xf9
// id[2] = 0x41
// id[3] = 0x00
Mein Problem ist jetzt also, dass ich in der (Delphi-)
DLL theoretisch nur den Zeiger auf das Array bekomme und nicht das Array selber. Gibt es nicht eine Möglichkeit, das Array genau wie in Delphi auch zu übergeben = also ohne dass ich die
DLL ändern muss?