INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Probleme mit Handler und Struct



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

16.11.2012, 11:08
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Probleme mit Handler und Struct
(16.11.2012 09:57 )ElBartscho schrieb:  Hallo Liebe Leute,

ich habe einige Probleme mit folgender DLL Funktion:

Code:
LMUSB_HANDLE __stdcall InitializeDevice(unsigned short usVID,
                                        unsigned short usPID,
                                        LPGUID lpGUID,
                                        BOOL *pbDriverInstalled);

Die beiden us- und der BOOL-Parameter machen keine Probleme. Der Rest schon.

Hier ein Ausschnitt aus dem Headerfil mit den notwendigen typedefs:

Code:
typedef unsigned char UCHAR, *PUCHAR;

typedef unsigned short USHORT, *PUSHORT;

typedef struct {

    unsigned long Data1;
  
    unsigned short Data2;

    unsigned short Data3;
  
    byte Data4[8];

} GUID;

typedef GUID *LPGUID;

typedef void *LMUSB_HANDLE;

Ich habe die Funktion mit Hilfe des Wizzards erstellen lassen. Im Wizzard wird mit für den Parameter
Code:
LPGUID lpGUID
ein Cluster angezeigt. Allerdings ist das Cluster nicht im vi vorhanden wenn ich nach der Erstellung das Blockdiagramm ansehe. Die Datentypen des Structs sind vom Wizzard lediglich einzeln an den Call Function Node Block angeschlossen worden? MIt diesen Konfigurationen erhielt ich einen Fehler von LV(#1097). Ich habe das vom Wizzard erstellte VI dann so editiert, dass die lpGUID als einzelner Parameter also in Form eines Clusters angeschlossen werden kann. Die vom Wizzard erstellten Datentypen habe ich beibehalten.

Ich bekomme hiermit zumindest keinen Fehler. Ich bekomme allerdings eine NULL als return Value. Meine Vermutung ist, dass die GUID nicht richtig erkannt oder übergeben wird?
Sind die Datentypen für Handler und die Übergabe der Parameter im richtigen Format für LabVIEW? Oder muss ich Vielleicht sogar komplett anders vorgehen um die richtige Funktionalität zu erhalten.


Danke für eure Hilfe!

Du kannst die acht Bytes am Ende nicht als String definieren sondern musst sie als acht seperate Byte Controls in den Cluster plazieren.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Probleme mit Handler und Struct - rolfk - 16.11.2012 11:08

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  C-Funktion benötigt Struct Forest 3 6.474 04.05.2013 23:38
Letzter Beitrag: rolfk
  Problem bei Struct Einbindung wie in C/C++ raverel 5 8.078 24.04.2013 14:22
Letzter Beitrag: raverel
  DLL-Einbindung, Struct mit verschiedenen Datentypen als Pointer übergeben hawk72 4 10.566 11.05.2012 14:41
Letzter Beitrag: hawk72
  in LV auf dll union zugreifen (struct {union{array;struct{ };BYTE}) Dommas 2 6.208 14.06.2011 10:20
Letzter Beitrag: Dommas
  Übergabe eines struct arrays an eine DDL und wieder Auslesen SK-AC 4 6.827 12.08.2010 17:01
Letzter Beitrag: rolfk
  pointer auf struct mit unterschiedlichen datentypen neven 8 7.243 27.11.2007 16:42
Letzter Beitrag: neven

Gehe zu: