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 

DLL einbinden mittels Wrapper



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.04.2013, 17:09
Beitrag #1

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



DLL einbinden mittels Wrapper
Hallo liebe LabView-Gemeinde,

bisher habe ich mich ausschließlich lesend im Forum beteiligt aber ich stehe vor einem Problem, bei dem ich auf eure Hilfe hoffe. Ich habe schon einige, auch komplexe Applikationen in LV erstellt, stehe nun aber vor einem Problem; dem Einbinden einer DLL in Labview. Ich habe schon vieles zu diesem Thema hier im Forum und auf der NI-Seite gelesen, so ganz schlau bin ich allerdings noch nicht daraus geworden.

Es geht um folgendes, ich möchte mittels COM Objekt mit einer Hardware kommunizieren. Hierfür habe ich die Hersteller SDK mit den DLL Libaries erhalten, allerdings ohne Header (.h) Datei, dafür aber mit einer ausführlichen Dokumentation der einzelnen Funktionen (Parameter, Rückgabewerte usw). Beispielhaft sei im Folgenden mal eine dargestellt: HRESULT GetLastErrorText([out, retval] BSTR* ErrorText )

Ich gehe davon aus, dass ich einen Wrapper verwenden muss, da es sich bei BSTR* um einen Pointer handelt aber wie hat der Wrapper auszusehen? Hat jemand von euch mal einen Wrapper erstellt und kann mir das Grundgerüst zur Verfügung stellen oder mir hilfreiche Tipps geben?

Oder irre ich mich und ich muss keinen Wrapper nutzen?

Vielen Dank im Voraus
OXO
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
28.04.2013, 19:10
Beitrag #2

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



Thumbs Up RE: DLL einbinden mittels Wrapper
Der Titel meines Beitrags ist wirklich bescheiden gewählt, sorry Angel_not
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2013, 19:48
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: DLL einbinden mittels Wrapper
(28.04.2013 17:09 )OXO schrieb:  Oder irre ich mich und ich muss keinen Wrapper nutzen?

Das hängt sehr stark davon ab was Deine COM Objekte zur Verfügung stellen. Wenn das wirklich pure COM Objekte sind dann führt kein Weg an einer Wrapper DLL vorbei. Aber COM ist die Basis von ActiveX und wenn Deine DLLs ein ActiveX Interface zur Verfügung stellen dann kannst Du ganz einfach die LabVIEW ActiveX Funktionen verwenden um diese Komponente aufzurufen.

Versuche mal eine ActiveX Refnum auf das Frontpanel zu legen und dann mit Browse im Rechtsklickmenu Deine DLL anzuwählen. Wenn Sie ein ActiveX Interface hat wird LabVIEW das merken.

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
28.04.2013, 20:15
Beitrag #4

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



RE: DLL einbinden mittels Wrapper
Vielen Dank für die abgefahren schnelle Hilfe Yourock

Da ich im Moment (ich hoffe das ändert sich bald) noch ziemlich unsicher mit der ganzen COM/ActiveX Materie bin, erkläre ich dir genau was ich gemacht habe und welche Optionen LabView mir nun zur Verfügung stellt. Vielleicht hilft das ja später auch anderen, die ähnliche Probleme haben.

Ich habe eine ActiveXReferenz erzeugt und und in der Typbibliothek meine dll ausgewählt. Als Objekte werden mir die entsprechenden Objekte der dll angezeigt.
Ist das ein hinreichendes Indiz dafür, dass ich keinen Wrapper brauche?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2013, 20:34 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2013 20:47 von OXO.)
Beitrag #5

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



RE: DLL einbinden mittels Wrapper
Ich habe jetzt mal versucht, eine beliebige andere dll zu laden (gehört nicht zum SDK). Beim Versuch erschien eine Fehlermeldung "Die ausgewählte Datei ist keine .Net-Assembly, Typenbibliothek oder Automations-EXE."
Das macht mir Mut, denn die dll aus dem SDK hat diesen Fehler nicht ausgegeben.

Trotzdem verstehe ich noch nicht so wirklich, wie ich mit dem Datentyp BSTR* o.ä. umgehen soll.
Ach eine Sache fällt mir noch ein, ein weiterer vorkommenden Datentyp ist IComponent. So nun warte ich erstmal auf Antwort, bevor ich meinen Tread total zu spamme.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.04.2013, 22:46
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: DLL einbinden mittels Wrapper
(28.04.2013 20:34 )OXO schrieb:  Ich habe jetzt mal versucht, eine beliebige andere dll zu laden (gehört nicht zum SDK). Beim Versuch erschien eine Fehlermeldung "Die ausgewählte Datei ist keine .Net-Assembly, Typenbibliothek oder Automations-EXE."
Das macht mir Mut, denn die dll aus dem SDK hat diesen Fehler nicht ausgegeben.

Trotzdem verstehe ich noch nicht so wirklich, wie ich mit dem Datentyp BSTR* o.ä. umgehen soll.
Ach eine Sache fällt mir noch ein, ein weiterer vorkommenden Datentyp ist IComponent. So nun warte ich erstmal auf Antwort, bevor ich meinen Tread total zu spamme.

Schliesse mal eine Property Node oder Method Node an die Refnum. Mit den Parameterdatentypen hast Du nichts zu tun, das macht LabVIEW dann für Dich. Für einen BSTR Parameter generiert LabVIEW automatisch einen String Parameter.

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
Anzeige
29.04.2013, 05:20
Beitrag #7

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



RE: DLL einbinden mittels Wrapper
Das werde ich nachher probieren und berichten, vielen Dank.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2013, 05:57
Beitrag #8

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



RE: DLL einbinden mittels Wrapper
Eine Frage fällt mir noch ein, muss ich bei COM Schnittstellen gar nicht das VI Knoten zum Aufruf externer Bibliotheken nutzen? Ich bini davon ausgegangen, dass DLL-Funktionen über dieses VI aufgerufen werden.

Viele Grüße und einen schönen Start in den Tag!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2013, 08:58
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: DLL einbinden mittels Wrapper
Richtig erkannt, bei einer ActiveX oder .NET Schnittstelle machst du alles über Eigenschaften und Methoden des Objekts, den DLL-Knoten brauchst du nicht.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.04.2013, 09:13
Beitrag #10

OXO Offline
LVF-Grünschnabel
*


Beiträge: 11
Registriert seit: Apr 2013

2012
2010
DE



RE: DLL einbinden mittels Wrapper
Bisher war ich nie ein großer Freund von .net aber das ändert sich so langsam. In Kombination mit LV scheint das (im Moment zumindest) recht gut zu klappen. Ich werde weiter testen und berichten.

Viele Grüße!
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
  LabView Wrapper - PostUserEvent aus externer DLL Stephan235 3 10.428 22.07.2015 13:28
Letzter Beitrag: rolfk
  Wrapper DLL zum dynamischen Laden b.p 3 6.682 17.04.2012 13:18
Letzter Beitrag: rolfk
  C# MAPI .NET WRAPPER DLL und Lotus Notes Totte 3 7.819 16.12.2011 09:15
Letzter Beitrag: Totte
  DLL in LV einbinden. Geht es nur mit einer anderen Wrapper-DLL Dimitri 24 27.264 02.07.2010 15:16
Letzter Beitrag: Dimitri
  Trinamic TMCM 610 über Wrapper.dll passimatze 2 5.646 17.06.2010 06:23
Letzter Beitrag: passimatze
  Trinamic TMCM-610 über Wrapper-dll ansteuern matzesl 14 18.652 14.11.2007 09:56
Letzter Beitrag: matzesl

Gehe zu: