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 verletzt bin. Das [url=viewtopic.php?t=20324]Problem[/url] liegt im Marsching des Arrays von lkif_floatValue [].// Measurement value structures
typedef enum {
LKIF_FLOATRESULT_VALID, // valid data
LKIF_FLOATRESULT_INVALID, // Invalid (error, etc.)
} LKIF_FLOATRESULT;
// Measurement value
typedef struct {
int OutNo; // OUT No(0-11)
LKIF_FLOATRESULT FloatResult; // valid or invalid data
float Value; // Measurement value
} LKIF_FLOATVALUE_OUT;
typedef struct {
LKIF_FLOATRESULT FloatResult; // valid or invalid data
float Value; // Measurement value
} LKIF_FLOATVALUE;
// Measured value output (single)
EXP RC WINAPI LKIF2_GetCalcDataSingle(IN int OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData);
// Outputting the Data Storage
EXP RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived);
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> [code]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 verletzt bin. Das [url=viewtopic.php?t=20324]Problem[/url] liegt im Marsching des Arrays von lkif_floatValue [].// Measurement value structures typedef enum { LKIF_FLOATRESULT_VALID, // valid data LKIF_FLOATRESULT_INVALID, // Invalid (error, etc.) } LKIF_FLOATRESULT; // Measurement value typedef struct { int OutNo; // OUT No(0-11) LKIF_FLOATRESULT FloatResult; // valid or invalid data float Value; // Measurement value } LKIF_FLOATVALUE_OUT; typedef struct { LKIF_FLOATRESULT FloatResult; // valid or invalid data float Value; // Measurement value } LKIF_FLOATVALUE;
// Measured value output (single) EXP RC WINAPI LKIF2_GetCalcDataSingle(IN int OutNo,OUT LKIF_FLOATVALUE_OUT * CalcData); // Outputting the Data Storage EXP RC WINAPI LKIF2_DataStorageGetData(IN int OutNo,IN int NumOfBuffer,OUT LKIF_FLOATVALUE * OutBuffer,OUT int *NumReceived); [/code]
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...
Können Sie mir helfen, ein Array von Strukturen auf einen Shader zu übertragen?
Ich habe ein TochechSvet-Array
с++:
struct TochechSvet {
TochechSvet(glm::vec3 zerkal = glm::vec3(), glm::vec3...
Ich möchte viele verschiedene Objekte eines Typs (einer Struktur) mit unterschiedlichen Werten für ihre Felder initialisieren und ich möchte Namen für die Initialisierung verwenden, um den Code...
Ich arbeite an der Implementierung von 256-Bit-Zahl-Arithmetik in CUDA für Operationen wie Addition mit Tragverbreitung, Subtraktion mit Ausleihen und Vergleich. Anfangs habe ich eine...