Hallo zusammen,
ich benutze eine Hersteller
DLL um auf eines meiner Messgeräte zuzugreifen. Die
DLL ist in Delphi geschrieben und ich möchte sie in VB.NET verwenden. Da VB keine Pointer unterstützt, die
DLL diese aber für alles einsetzt, habe ich noch eine Zwischen-
DLL in Delphi geschrieben die die Kommunikation mit der Hersteller-
DLL übernimmt und die Daten dann für meine VB-Applikation aufbereitet. Alles wie gesagt kein Problem, außer bei der Übergabe der Daten während einer Messung.
Die Hersteller-
DLL schreibt die Daten in einen Buffer den man dann mit einer Funktion auslesen kann. Problematisch ist, dass ich nun ein Array mit Daten in meiner Zwischen-
DLL habe, was ich an VB weitergeben möchte. Bisher ist es mir nicht gelungen, dass ganze zu bewerkstelligen.
Wenn ich versuche, einfach das Array als Funktionsresultat bereitzustellen:
Code:
CADataResult = record
Ewe : single;
I : single;
t : double;
end;
CAData = record
Data : array of CADataresult;
end;
-----
function GetCAData(FID : int32; Channel : int32) : CAData; export; stdcall;
schmeißt VB eine
Exception "Die Typensignatur der Methode ist nicht PInvoke-kompatibel.".
Weiss jemand eine Möglichkeit, wie man so etwas realisieren kann? Ich muss dazu sagen, dass ich kein Profi bin, und das ganze eher aus der Notwendigkeit geboren ist, daher entschuldige ich mich mal für offensichtliche Fehler. Falls ihr noch Informationen benötigt, immer gern.
Danke bereits im Vorraus und beste Grüße
Keex