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 Verwendung



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!

20.04.2007, 12:10
Beitrag #1

BigBen Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2007

7.1
-
kA

87640
Deutschland
DLL Verwendung
Hallo Zusammen,

möchte eine externe Biblitothek einer dspace-Karte in LV verwenden. Hierfür gibt es aber nur eine CLIB. Kann ich diese in LV nutzen? Bei den zur Verfügung gestellten Dateien handelt es sich um .lib Dateien. Gibt es dazu auch immer eine DLL? Ist der Knoten zum Aufruf externer Bibs die richtige Variante? Warum können in diesem Knoten eigentlich keine booleschen Datentypen als Rückgabewert oder Parameter ausgewählt werden? Muß ich ich die C-Header-Dateien auch irgendwie einbinden, oder reicht es zum Aufruf, wenn ich die Funktion und deren Parameter kenne?

Wie ihr seht, hänge ich etwas in der Luft. Ich hoffe einer von Euch kann mir helfen!?

Gruß,

BigBen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
20.04.2007, 12:14
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL Verwendung
Oh - viele, viele Fragen.

Hast du schon mal das Turorial zur DLL-Einbindung durchgemacht? Da dürfte einiges Interessante für dich drinnen stehen.

Danach kannst du ja nochmals fragen.

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
23.04.2007, 10:26
Beitrag #3

BigBen Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Feb 2007

7.1
-
kA

87640
Deutschland
DLL Verwendung
Hallo IchSelbst,

danke für den Tip mit dem Tutorial. Das mir einiges geholfen. Aber eine kleine Frage:
Ich habe mit dem Knoten zum Aufruf externer Bibliotheken mal so rumprobiert, und DLL´s gefunden, bei denen es funktioniert, aber auch bei manchen nicht.
Damit meine ich das das Dropdown-Feld beim Konfigurieren die Funtktionen der von mir ausgewählten DLL nicht erkennt. Woran liegt das?

Gruß,

BigBen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.04.2007, 13:26 (Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2007 13:30 von IchSelbst.)
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.687
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
DLL Verwendung
' schrieb:Ich habe mit dem Knoten zum Aufruf externer Bibliotheken mal so rumprobiert, und DLL´s gefunden, bei denen es funktioniert, aber auch bei manchen nicht.
Prinzipiell sollte es bei allen DLLs gehen.

Zitat:Damit meine ich das das Dropdown-Feld beim Konfigurieren die Funtktionen der von mir ausgewählten DLL nicht erkennt. Woran liegt das?
Keine Ahnung.
Ich kann mir zwei Sachen vorstellen, warum dem so ist. Erstens: Die von dir erwartete Funktion befindet sich tatsächlich nicht in dieser DLL. Zweitens: Der Funktionsprototyp der Funktion ist nicht mit LV kompatibel. Ob das sein kann, weiß ich auch nicht genau. Es scheint mir zwar unwahrscheinlich, aber doch theoretisch möglich.

Nachtrag:
Folgender Fall könnte inkompatibel sein. In C++ ist es möglich, einem Unterprogramm Parameter zu übergeben, deren Anzahl zur Entwicklungszeit nicht bekannt ist. Dafür geht das auch nur mit CDecl (statt StdCall). Ob LV sowas kann, respektive ob es feststellen kann, dass eine Funktion solche Parameter hat, weiß ich nicht.

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
12.06.2007, 13:06
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
DLL Verwendung
' schrieb:Hallo IchSelbst,

danke für den Tip mit dem Tutorial. Das mir einiges geholfen. Aber eine kleine Frage:
Ich habe mit dem Knoten zum Aufruf externer Bibliotheken mal so rumprobiert, und DLL´s gefunden, bei denen es funktioniert, aber auch bei manchen nicht.
Damit meine ich das das Dropdown-Feld beim Konfigurieren die Funtktionen der von mir ausgewählten DLL nicht erkennt. Woran liegt das?

Wenn eine DLL in der Dropdownbox nur ein paar Funktionen listet soetwa wie DLLRegister() und DLLUnregister() handelt es sich immer um eine DLL die ein DCOM (meist ist das dann eine echte ActiveX Implementierung) Schnittstelle bietet. Da dies komplett auf OO basiert kommst Du da mit dem DLL Aufrufknoten nicht hinzu. Die einzige Möglichkeit besteht dann um zu versuchen die ActiveX Schnittstelle mit der ActiveX-Funktionalität von LabVIEW zu benützen. Aber ohne Beschreibung der Schnittstelle ist das nicht sinnvoll (und im Falle einer reinen (D)COM Schnittstelle ohne ActiveX extra Firlefanz) auch gar nicht möglich.

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
12.06.2007, 13:10
Beitrag #6

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
DLL Verwendung
' schrieb:Hallo Zusammen,

möchte eine externe Biblitothek einer dspace-Karte in LV verwenden. Hierfür gibt es aber nur eine CLIB. Kann ich diese in LV nutzen? Bei den zur Verfügung gestellten Dateien handelt es sich um .lib Dateien. Gibt es dazu auch immer eine DLL? Ist der Knoten zum Aufruf externer Bibs die richtige Variante? Warum können in diesem Knoten eigentlich keine booleschen Datentypen als Rückgabewert oder Parameter ausgewählt werden? Muß ich ich die C-Header-Dateien auch irgendwie einbinden, oder reicht es zum Aufruf, wenn ich die Funktion und deren Parameter kenne?

Das hängt sehr davon ab. lib files können zwei Dinge sein.

Entweder ist es vorkompilierter Code den man in eigene Projekte einbinden kann. Der Compiler/Linker bindet diesen Code dann in das eigene Program ein. Oder es ist eine DLL Import Library die nichts anderes tut als für die verschiedenen Funktionen einen Link zu der eigentlichen Implementation in der DLL herzustellen.

Im ersten Fall brauchst Du einen C compiler mit dem Du die lib in eine DLL umsetzst, die Du dann in LabVIEW aufrufen kannst. Im Zweiten Fall vergisst Du die Lib und versuchst eine Dokumentation zu bekommen, welche Funktionen in welcher DLL implementiert sind.

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
Anzeige
12.06.2007, 13:14
Beitrag #7

rolfk Offline
LVF-Guru
*****


Beiträge: 2.302
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
DLL Verwendung
' schrieb:Folgender Fall könnte inkompatibel sein. In C++ ist es möglich, einem Unterprogramm Parameter zu übergeben, deren Anzahl zur Entwicklungszeit nicht bekannt ist. Dafür geht das auch nur mit CDecl (statt StdCall). Ob LV sowas kann, respektive ob es feststellen kann, dass eine Funktion solche Parameter hat, weiß ich nicht.

LabVIEW kann und braucht sowas nicht festzustellen. Die Anzahl der Parameter bei solchen Funktionen kann zwar varieren ist aber für einen bestimmten Aufruf immer fest, da er sich immer aus einem der am Anfang stehenden Parameter intern ableitet. D.h. der Aufrufer übergibt der Funktion bestimmte Parameter die in ihrer Kombination fest sind.
Es kann aber schon bedeuten dass man für verschiedene Parameterkombinationen für eine solche Funktion aber recht verschiedene Aufrufknotenkonfigurationen machen muss.

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
  Verwendung von DLL in EXE-Datei ap2510 1 3.043 09.01.2007 15:49
Letzter Beitrag: A.Berndsen
  Verwendung von Matlab/S-Function unter LabVIEW Hasiman 0 5.547 07.02.2005 15:40
Letzter Beitrag: Hasiman

Gehe zu: