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 

HTTP Handle an DLL übergeben



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!

06.02.2012, 14:19
Beitrag #1

derandyk Offline
CLA
*


Beiträge: 30
Registriert seit: Feb 2012

2015
2007
DE_EN

91054
Deutschland
HTTP Handle an DLL übergeben
Hallo,

ich habe versucht die folgenden VI Funktionen in eine DLL zu verpacken:

- HTTP Handle öffnen
- HTTP Get
- HTTP Handle schließen

Mein Problem dabei ist das übergeben des HTTP Handles zwischen den einzelnen DLL Aufrufen.

Ich habe versucht den Datentyp "Handle" in diverse Integer-Formate zu wandeln. Allerdings mit dem Ergebnis, dass ich jedesmal LabView komplett abschiesse.

Allerdings gebe ich freimütig zu dass ich hier nur mit Halbwissen agiere.

Kann mir jemand Hilfestellung leisten wie allgemein beim übergeben von Referenzen an DLL vorgegangen werden muss?

Danke für Eure Zeit

Andy K.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.02.2012, 21:04
Beitrag #2

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: HTTP Handle an DLL übergeben
(06.02.2012 14:19 )derandyk schrieb:  Hallo,

ich habe versucht die folgenden VI Funktionen in eine DLL zu verpacken:

- HTTP Handle öffnen
- HTTP Get
- HTTP Handle schließen

Mein Problem dabei ist das übergeben des HTTP Handles zwischen den einzelnen DLL Aufrufen.

Ich habe versucht den Datentyp "Handle" in diverse Integer-Formate zu wandeln. Allerdings mit dem Ergebnis, dass ich jedesmal LabView komplett abschiesse.

Allerdings gebe ich freimütig zu dass ich hier nur mit Halbwissen agiere.

Kann mir jemand Hilfestellung leisten wie allgemein beim übergeben von Referenzen an DLL vorgegangen werden muss?

Danke für Eure Zeit

Andy K.

Und von welchem API respective DLL kommt das? Ein Handle ist ein Identifier aber das kann je nach API ein 32 Bit Integer sein oder ein Pointer, oder irgendein anderes skurriles Ding. Was es genau ist kann man nur anhand der Header Definitionen des APIs wirklich sehen.

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
07.02.2012, 15:19
Beitrag #3

derandyk Offline
CLA
*


Beiträge: 30
Registriert seit: Feb 2012

2015
2007
DE_EN

91054
Deutschland
RE: HTTP Handle an DLL übergeben
Die oben beschriebenen Funktionen existieren in LabView 2011 als konkrete VI's

Zu finden unter der Funktionspalette:

Datenkommunikation>Protokolle>HTTP Client

Den Datentyp des Handles habe ich durch die Kontexthilfe identifiziert. Siehe Bildanhang.

Scheinbar handelt es sich um einen 32-Bit-Integer.

Bedeutet dies dass dich den Handle beispielsweise durch ein TypeCast in einen 32-Bit Integer wandle und als Integer and die DLL übergebe?

Vielen Dank für Eure Zeit!


Angehängte Datei(en) Thumbnail(s)
   
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.02.2012, 21:02
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: HTTP Handle an DLL übergeben
(07.02.2012 15:19 )derandyk schrieb:  Die oben beschriebenen Funktionen existieren in LabView 2011 als konkrete VI's

Zu finden unter der Funktionspalette:

Datenkommunikation>Protokolle>HTTP Client

Den Datentyp des Handles habe ich durch die Kontexthilfe identifiziert. Siehe Bildanhang.

Scheinbar handelt es sich um einen 32-Bit-Integer.

Bedeutet dies dass dich den Handle beispielsweise durch ein TypeCast in einen 32-Bit Integer wandle und als Integer and die DLL übergebe?

Vielen Dank für Eure Zeit!

Du bewegst Dich hier auf ziemliches Glatteis. Diese DLL ist nicht dokumentiert und in dem Sinne kann man keine eindeutige Aussage dazu machen was das Handle hier effektiv ist. Die Tatsache dass es in LabVIEW 2011 in VIs als 32 bit Integer konfiguriert ist, ist kein Beweis sondern höchstens ein Indiz das dem wirklich so ist. Es könnte genau so gut in Wirklichkeit ein Pointer sein, und haben sie bei NI einfach vergessen diese VIs unter 64 Bit zu testen.

Zudem musst Du bei DLLs von NI immer sehr aufpassen. Die rufen öfters private LabVIEW Funktionen auf. Dann ist die Tatsache, dass eine solche LabVIEW Library nur in neueren Versionen vorhanden ist, nicht nur der Bequemlichkeit des NI Entwicklers zuzuschreiben, der die Library nicht in einer früheren LabVIEW Version entwickeln und testen wollte, sondern sogar eine zwingende technische Einschränkung da frühere LabVIEW Versionen die entsprechenden privaten APIs schlichtweg nicht unterstützen. Oder es ist Bestandteil einer anderen NI Komponente die korrekt und komplet installiert sein muss, bevor die Library funktionieren kann. Dann laufen Deine VIs zwar auf einer früheren LabVIEW Version wenn Du sie auf derselben Maschine ausführst auf der Du auch die neuere LabVIEW Entwickelumgebung installiert hast, aber nicht auf einem anderen Rechner ohne da auch die entsprechende Entwickelversion zu installieren.

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 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Datentyp HANDLE, PVOID weschi 7 10.435 12.06.2007 14:14
Letzter Beitrag: rolfk

Gehe zu: