Ich arbeite mit einer nicht verwalteten C ++ - DLL in C#, die ein Messgerät über USB steuert. Ich habe eine Messung von Einzelwertemessungen erhalten, aber ich habe Schwierigkeiten, aufgezeichnete Daten wiederherzustellen ... Ich denke, ich kann den Weg nicht richtig finden, um die Auswahl der Struktur richtig zu marschieren. < /P>
int OutNo = 1; //Measurement head #1 selected
int NumOfBuffer = 10; //Number of datapoints recorded
LKIF_FLOATVALUE[] OutBuffer = new LKIF_FLOATVALUE[10]; //data buffer
int NumReceived = 0; //number of valid points
RC ReturnCode = LKIF2_DataStorageGetData(OutNo, NumOfBuffer, out OutBuffer, ref NumRecieved); //returns a Null pointer for OutBuffer and an error return code "Response receiving error"
[DllImport("LkIF2.dll")]
public static extern RC LKIF2_DataStorageGetData(int OutNo, int NumOfBuffer, out LKIF_FLOATVALUE[] OutBuffer, ref int NumReceived);
public struct LKIF_FLOATVALUE
{
public LKIF_FLOATRESULT FloatResult;
public float Value;
}
public enum LKIF_FLOATRESULT
{
LKIF_FLOATRESULT_VALID, // valid data
LKIF_FLOATRESULT_ALARM, // alarm
LKIF_FLOATRESULT_INVALID, // Invalid (error, etc.)
}
< /code>
Und hier ist der Abschnitt der Header -Datei mit dem Funktionsprototyp: < /p>
// Outputting the Data Storage
EXP RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived);
< /code>
Ich habe versucht, mit verschiedenen Marschalloptionen für die Struktur zu spielen, aber im Wesentlichen kein Glück. Zu diesem Zeitpunkt wäre ich glücklich, auch wenn der Puffer nicht dynamisch zugewiesen werden könnte. Ich habe Angst, dass ich für Lösungen Verlust habe.
Eine Reihe von Strukturen ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post