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 

Erstellen einer USB-Device-Liste mithilfe von win32-api



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!

23.04.2009, 16:02 (Dieser Beitrag wurde zuletzt bearbeitet: 29.04.2009 16:53 von A.Berndsen.)
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Erstellen einer USB-Device-Liste mithilfe von win32-api
Grundsätzlich hast Du das alles richtig gesehen auch wenn da einige Anmerkungen zu machen sind.

1) LabVIEW kann sehr wohl mit structs umgehen, die entsprechen ganz einfach den LabVIEW Clustern. Aber es gibt dabei verschiedenen Dinge zu berücksichtigen: Erstens müssen die structs "flat" sein, also keine Pointer enthalten und zweitens musst Du auf das "Alignment" der Elemente in einer struct aufpassen. LabVIEW packt die Daten in einem Cluster immer und daher musst Du gegebenenfalls Füllbytes in einen Cluster einfügen um die Datenelemente auf die Alignmentgebegebenheiten der C struct anzupassen.

2) Ein HDEVINFO wie alle anderen Handles in Windows ist eine opaque Dateneinheit. Meist handelt es sich um einen Pointer auf einen Speicherbereich oder einen Arrayindex in eine Windows interne Resourceliste, aber das Format der Daten die dahinter stecken ist normalerweise nicht dokumentieret und kann auch zwischen Windows Versionen sehr stark unterschiedlich sein. Um mit diesem Handle etwas tun zu können musst Du entsprechende Windows APIs benützen.

3) Ein Windows Handle ist im wesentlichen eine 32Bit Zahl (unter Windows 64 Bit in den meisten Fällen eine 64 Bit Zahl) deren Wert für Dich als Anwender normalerweise grundsätzlich unwichtig ist (es gibt Ausnahmen, so gibt es APIs die im Fehlerfall ein NULL Handle oder manchmal auch 0xFFFFFFFF zurückgeben aber alle anderen Werte sind als gültige Handles anzusehen). Du kannst in der LabVIEW Call Library Node so ein Handle Parameter am Besten als 32 Bit unsigned Integer konfigurieren oder in LabVIEW 8.6 eventuel als Pointer sized Integer um für spätere Windows 64 Bit Versionen gewappnet zu sein.

Auf dem LAVA Forum gibt es jemanden der sich auch schon mit diesen APIs rumgeschlagen hat, mit einem Teilerfolg aber seine C Kenntnisse waren am Ende doch etwas unzureichend um das wirklich vollumfänglich hinzukriegen.

Rolf Kalbermatter

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
Antwort schreiben 


Nachrichten in diesem Thema
Erstellen einer USB-Device-Liste mithilfe von win32-api - rolfk - 23.04.2009 16:02

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  String Liste aus DLL in LV und zurück MrIzu 7 8.120 12.12.2011 13:25
Letzter Beitrag: MrIzu
  automatisches erstellen einer DLL M@rRy 16 11.517 08.10.2011 13:46
Letzter Beitrag: rolfk
  libusb-win32 + LV heikoleinchen 3 6.998 18.02.2008 09:48
Letzter Beitrag: rolfk
  Device über DLL ansprechen Tim 4 5.234 12.06.2007 13:24
Letzter Beitrag: rolfk

Gehe zu: