Einzelnen Beitrag anzeigen

Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Delphi-DLL in C++ Programm benutzen

  Alt 20. Jun 2013, 17:47
Danke für die Antwort - aber auch bei einem
Code:
#pragma pack(1)
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?
Peter
-= Gruss Peter =-
-= alias x000x =-

Geändert von x000x (20. Jun 2013 um 18:19 Uhr)
  Mit Zitat antworten Zitat