Einzelnen Beitrag anzeigen

Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#1

Funktionsaufruf von C nach Delphi übersetzen

  Alt 31. Jul 2007, 16:56
Moin,

ich habe Schwierigkeiten, eine C-DLL aus Delphi (Win32) heraus anzusprechen. Ich habe zu der DLL eine Header-Datei, von der ich annehmen kann, dass sie korrekt ist.

In der Header-Datei sind zum Einen Strukturen (struct) definiert, die ich in packed records überführt habe und die Typen anhand einschlägiger Dokumentation übersetzt habe. Da sind auch wenig schräge Sachen dabei gewesen, es ging um char* -> PChar, double -> Double und long -> Longint, teilweise auch als Arrays.

Nun verbleiben noch drei Funktionsdeklarationen, die vom strukturellen Aufbau der identisch sind, daher hier nur einer dieser Aufrufe als Beispiel:

Code:
extern void __declspec (dllexport) FUNKTIONSNAME(datentyp1*,datentyp2*,long*);
ich habe daraus das Folgende in Delphi gemacht:

procedure(var _1 : datentyp1; var _2: datentyp2; var _3: LongInt) cdecl; Bedauerlicherweise bekomme ich nur eine Schutzverletzung aus der DLL. Ich gehe davon aus, dass meine Daten nicht richtig in der DLL ankommen, da die DLL selbst mit einer ganzen Reihe an Plausibilitäts-Prüfungen versehen ist. Wenn ich also in den Datenstrukturen Felder falsch initialisiere, so sollte ich Fehlercodes erhalten, aber keine Schutzverletzung.


Irgtendwelche Ideen zu meiner Übersetzung?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat