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 

Datentyp HANDLE, PVOID



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!

28.03.2006, 09:37
Beitrag #1

weschi Offline
LVF-Grünschnabel
*


Beiträge: 13
Registriert seit: Mar 2006



kA



Datentyp HANDLE, PVOID
Hallo,
bin noch ein ziemlicher Neuling in LabVIEW und soll eine Treiber-DLL einbinden. Für die meisten Strukturdatentypen weiß ich wie man Wrapperfunktionen schreibt nur bei den Datentypen "HANDLE" und "PVOID" habe ich keine Ahnung, wie ich da dran komme. Wer hat so etwas schon einmal gemacht?

Danke schon mal für die Antworten!

MFG weschi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.04.2007, 11:10
Beitrag #2

Chris82 Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2007

8.20
-
kA

68804
Deutschland
Datentyp HANDLE, PVOID
Hallo,

Ich habe gerade dasselbe Problem, dass ich eine externe Funktion aufrufen will und dieser einen Parameter vom Typ HANDLE übergeben muss. Ein Bild mit der Beschreibung von der Funktion hab ich mal angehängt. Bei dem Gerät, das ich über die dll ansprechen will, handelt es sich um ein seriell-USB-Wandler von Silabs.

Weiß hier villeicht jemand Bescheid, wie ich so etwas mache? Geht das überhaupt? Oder mss ich dazu vielleicht noch etwas mehr vom Ersteller der dll erfahren?

Also ich hab sovile herausgefunden, dass ein HANDLE eine Referenz auf irgendetwas in Windows ist, unter der ich dann etwas ansrpechen kann. In diesem Fall muss ich dann den weiteren Funktionen der dll (z.B. lesen, schreiben, schließen usw.) dieses HANDLE übergeben. Aber wie gesagt, ich hab leider keine Ahnung wie ich das machen kann. Hab auch schon beim Aufruf der Funktion für die Parameter alle möglichen Datentypen ausprobiert. Manchmal stürzt LabVIEW dann auch ab.

Vielleicht weiß ja hier jemand darüber Bescheid.

Gruß
Christian


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2007, 11:18 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2007 11:21 von VDB.)
Beitrag #3

VDB Offline
LVF-Stammgast
***


Beiträge: 426
Registriert seit: Oct 2005

2010-2011
1997
kA

52134
Deutschland
Datentyp HANDLE, PVOID
' schrieb:Hallo,

Ich habe gerade dasselbe Problem, dass ich eine externe Funktion aufrufen will und dieser einen Parameter vom Typ HANDLE übergeben muss. Ein Bild mit der Beschreibung von der Funktion hab ich mal angehängt. Bei dem Gerät, das ich über die dll ansprechen will, handelt es sich um ein seriell-USB-Wandler von Silabs.

Weiß hier villeicht jemand Bescheid, wie ich so etwas mache? Geht das überhaupt? Oder mss ich dazu vielleicht noch etwas mehr vom Ersteller der dll erfahren?

Also ich hab sovile herausgefunden, dass ein HANDLE eine Referenz auf irgendetwas in Windows ist, unter der ich dann etwas ansrpechen kann. In diesem Fall muss ich dann den weiteren Funktionen der dll (z.B. lesen, schreiben, schließen usw.) dieses HANDLE übergeben. Aber wie gesagt, ich hab leider keine Ahnung wie ich das machen kann. Hab auch schon beim Aufruf der Funktion für die Parameter alle möglichen Datentypen ausprobiert. Manchmal stürzt LabVIEW dann auch ab.

Vielleicht weiß ja hier jemand darüber Bescheid.

Gruß
Christian

Ein Handle ist ein U32 in LabVIEW (Numeric, Unsigned 32-bit Integer, Pass Pointer To Value in deinem Fall)
Und nicht vergessen Speicher zu deklarieren!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2007, 12:14
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.698
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Datentyp HANDLE, PVOID
Gemäß dem ProtoTyp und der Beschreibung desselben ist "HANDLE *Handle" ein Ausgabeparameter. Du musst im DLL-Knoten als zweiten Parameter also einen "Zeiger auf Wert" vom Typ U32 angeben. An den DLL-Knoten schließt du dann eine U32-Variable an. Diese enthält dann den Handle, den du dann auf die anderen DLL-Funktionen wie Schreiben und Lesen geben musst.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2007, 14:18 (Dieser Beitrag wurde zuletzt bearbeitet: 04.04.2007 15:28 von Chris82.)
Beitrag #5

Chris82 Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2007

8.20
-
kA

68804
Deutschland
Datentyp HANDLE, PVOID
Vielen Dank für die Antworten. Das Lesen hab ich zwar noch nicht hinbekommen, aber das mit dem HANDLE scheint zu funktionieren und LabVIEW stürzt auch nicht mehr ab.

@VDB
Was meinst du mit Speicher deklarieren? Und wie kann ich das machen?

Und hat hier vielleicht jemand schon mal was von dem Datentyp OVERLAPPED gehört? Oder gibt es bei LabVIEW wie in C den NULL-Zeiger?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.04.2007, 16:51
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.698
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Datentyp HANDLE, PVOID
' schrieb:Und hat hier vielleicht jemand schon mal was von dem Datentyp OVERLAPPED gehört?
Hier ich! Lol
Ich vermute aber mal, dass das nicht geht. Auch wenn ich gar nicht weis, wo du plötzlich diesen Typ her hast und was du damit machen willst.

Zitat:Oder gibt es bei LabVIEW wie in C den NULL-Zeiger?
Im Prinzip ja. NULL: Typ U32, Wert 0

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.04.2007, 12:20
Beitrag #7

Chris82 Offline
LVF-Grünschnabel
*


Beiträge: 10
Registriert seit: Feb 2007

8.20
-
kA

68804
Deutschland
Datentyp HANDLE, PVOID
Jaaaaaa, ich habs hinbekommen.

FÜr alle, die dasselbe oder vielleicht etwas ähnliches machen wollen, hier ein hilfreicher Link:

http://www.cygnal.org/ubb/Forum9/HTML/000911.html
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.06.2007, 14:14
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.306
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Datentyp HANDLE, PVOID
' schrieb:Und hat hier vielleicht jemand schon mal was von dem Datentyp OVERLAPPED gehört?

Als Datentyp sagt mir das gar nichts. Im Win32 API ist das eine Bezeichnung für eine asynchrone Betriebsart einiger Funktionen (z.B. ReadFile, WriteFile). Dann wird die Funktion mit einem extra Pointer mit spezifischen Information aufgerufen und kehrt danach direkt zum Aufrufer zurück, noch bevor die gewünschten Daten geschrieben oder gelesen wurden. Mit speziellen Mechanismen die Informationen aus dem Pointer verwenden, kann der Aufrufer danach feststellen, wann die Funktion ihre Arbeit abgeschlossen hat.

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 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  UUID als Datentyp für eine DLL erstellen jabami 22 22.504 07.03.2012 23:47
Letzter Beitrag: rolfk
  Variant Datentyp bei C++ dll BastiFantasti 1 5.640 10.02.2012 21:30
Letzter Beitrag: rolfk
  HTTP Handle an DLL übergeben derandyk 3 5.541 08.02.2012 21:02
Letzter Beitrag: rolfk
  Erzeugte DLL hat geänderten Datentyp (uint32->int32) LabVIEWDompteur 4 6.619 14.10.2011 12:09
Letzter Beitrag: rolfk

Gehe zu: