Einzelnen Beitrag anzeigen

Keex

Registriert seit: 25. Feb 2004
29 Beiträge
 
#1

Array zwischen Delphi-DLL und VB.NET

  Alt 24. Okt 2012, 10:37
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
  Mit Zitat antworten Zitat