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