stuct aus DLL verwenden
-
Hallo,
ich habe eine Funktion aus einer DLL geladen:int canusb_Read(CAN ANDLE h,CANMsg *msg );
canusbRead= (FUNC_canusb_Read) GetProcAddress( hinstLib, "canusb_Read" );
Diese Funktion liest einen CAN-Frame ein, der in einem struct "CANMsg" gespeichert wird.
Der struct ist laut der DLL-Beschreibung wie folgt deklariert:typedef struct {
_u32 id;//Message id
_u32 timestamp;//timestamp in milliseconds
_u8 flags;//[extended_id|1 ][RTR:1 ][reserver:6 ]
_u8 len;//Frame size (0.8)
_u8 data [ 8 ] ;//Databytes 0..7
}CANMsg;Habe diesen struct in die Header-Datei meines Programms kopiert,
jedoch wird der Typ _u32 (welcher wahrscheinlich für einen 32Bit Wert steht) als unbekannt vom Compiler gemeldet.
Anschließend habe ich den _u32 ersetzt durch den Typ DWORD. Aber wenn ich nun einen Kontrollframe auslese,
ist u.a. der Inhalt in der Message id (_u32 id) nicht korrekt.Nun wollt ich Fragen, ob meine Vorgehensweise richtig ist
und ich den Fehler wo anderst suchen muss,
oder muss ich den struct irgendwie anderst meinem Programm bekannt geben?
Bin über jeden Tipp dankbar.gruß Crabs
-
Gibt es zu der dll keinen Header mit den entsprechenden Typdefinitionen? Wenn nicht, ist das ganze eher Rumgestocher im Nebel.
Ansonsten hat meine Suche nach
canusb_Readfolgenden Link ausgespuckt.
-
Leider war keine Header-Datei dabei.
Es gab nur die deklaration des Structs und die Funktionsbeschreibung der einzelnen CAN-Funktionen.Vielen Dank für den Link, damit kann man gut arbeiten

Hab aber noch eine Frage:
muss ich den Struct in meiner Header-Datei
meines Programms deklarieren oder gibt es ein Befehl mit dem ich den Struct extern aufrufen kann?