Hallo zusammen,
ich kämpfe schon seit Freitag an einem Problem für das ich in VB.net leider keine Lösung finden kann. Ich verwende eine eine in C++ geschriebene DLL zum Abholen von Daten von einer externen Hardware über einen Echtzeitbus.
Es gibt in der DLL Funktionen um Lesen und Schreiben von Daten bei der man lediglich eine Adresse, die zu verarbeitende Länge und einen Pointer auf ein Array zu übergeben hat.
In der Deklaration bin ich wie folgt vorgegangen:
Prinzipiell funktioniert das auch ganz wunderbar, allerdings hole ich mir hier eine Datenstruktur herauf welche nicht nur aus 1 Byte Werten besteht. Hierfür hätte ich mir eine Struktur deklariert:
Beim Aufruf meiner Funktion bekomme ich auch bereits die gültigen Werte gelesen. Allerdings scheitere ich jetzt am Umkopieren. (jetzt wär eine Mem. Copy Funktion ein Traum ;-) )
Habt Ihr einen Tipp / eine Lösung für mich?
Vielen vielen Dank schon mal!
ich kämpfe schon seit Freitag an einem Problem für das ich in VB.net leider keine Lösung finden kann. Ich verwende eine eine in C++ geschriebene DLL zum Abholen von Daten von einer externen Hardware über einen Echtzeitbus.
Es gibt in der DLL Funktionen um Lesen und Schreiben von Daten bei der man lediglich eine Adresse, die zu verarbeitende Länge und einen Pointer auf ein Array zu übergeben hat.
In der Deklaration bin ich wie folgt vorgegangen:
Code:
'C++ Deklaration 'BOOL V32ReadMemory (int iCCB, UINT uiMaster, UINT uiAddress, UINT uiOffset, UINT uiLen, UINT * puiError, void * pBuffer ) 'VB.net Public Declare Function V32ReadMemory Lib "V32.dll" (ByVal iCCB As Int32, ByVal uiMaster As UInt32, ByVal uiAddress As UInt32, ByVal uiOffset As UInt32, ByVal uiLen As UInt32, ByRef uipError As UInt32, ByRef pBuffer As Byte) As Boolean
Code:
Structure addr_m_t_buff_voltage Dim ModulStatus1 As Byte ' Dim ModulStatus2 As Byte ' ToDo: 3 Byte Wert in Array zusammenfassen Dim ModulStatus3 As Byte ' Dim CosPhi As Byte Dim ActPower As Integer Dim AbsolutEnergyConsum As Int32 Dim EnergyConsumSinceReset As Int32 Dim TrigCalcStatus1 As Byte ' Dim TrigCalcStatus2 As Byte ' ToDo: 3 Byte Wert in Array zusammenfassen Dim TrigCalcStatus3 As Byte ' Dim TrigCosPhi As Byte Dim TrigEnergyConsum As Int32 Dim TrigErnergyConsumPerShot As Int32 Dim MaxPower As Int32 Dim U1 As VoltageChannel Dim U2 As VoltageChannel Dim U3 As VoltageChannel End Structure
Beim Aufruf meiner Funktion bekomme ich auch bereits die gültigen Werte gelesen. Allerdings scheitere ich jetzt am Umkopieren. (jetzt wär eine Mem. Copy Funktion ein Traum ;-) )
Habt Ihr einen Tipp / eine Lösung für mich?
Vielen vielen Dank schon mal!
Comment