28.04.2013, 17:09
Beitrag #1
|
OXO
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
|
|
|
28.04.2013, 19:10
Beitrag #2
|
|
|
28.04.2013, 19:48
Beitrag #3
|
|
|
28.04.2013, 20:15
Beitrag #4
|
OXO
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
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?
|
|
|
28.04.2013, 20:34
(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2013 20:47 von OXO.)
Beitrag #5
|
OXO
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.
|
|
|
29.04.2013, 05:20
Beitrag #7
|
OXO
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.
|
|
|
29.04.2013, 05:57
Beitrag #8
|
OXO
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!
|
|
|
29.04.2013, 08:58
Beitrag #9
|
jg
CLA & CLED
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.
|
|
|
29.04.2013, 09:13
|
OXO
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!
|
|
|
| |