LabVIEWForum.de
Relativer DLL-Pfad in VI - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: Relativer DLL-Pfad in VI (/Thread-Relativer-DLL-Pfad-in-VI)

Seiten: 1 2


Relativer DLL-Pfad in VI - integrity - 25.07.2007 09:48

Guten Tag!

Ich will mittels einer C-DLL auf externe hardware zugreifen.
Die erhaltenen Rückgabewerte werden an das VI zurückgegeben.

Mit einer test-dll (erzeugt einfach zufallszahlen) funktioniert alles.

Das Problem ist nun, dass ich das VI mit der DLL auch auf andere PCs kopieren muss.
Der Pfad der im DLL-Knoten eingestellt werden kann ist allerdings ABSOLUT.
Somit muss ich die Kopie (zumindest die DLL) auf jedem PC ins selbe Verzeichnis legen.
Einen Application Builder haben wir nicht, da in unserer Lizenz nicht enthalten. (mit exe wäre das Problem wahrscheinlich gelöst)

Wenn ich versuche einen relativen Pfad (z.b. .DLL-Ordnertest.dll) einzugeben wird jedes mal folgendes erzeugt: C:DLL-Ordnertest.dll

besteht hier eine Möglichkeit dies dennoch zu realisieren?
(Die DLL würde idealerweise ein verzeichnis über dem ausfürhendem VI liegen)

danke für eure hilfe!
lg


Relativer DLL-Pfad in VI - eg - 25.07.2007 09:56

Bei der Erstellung der Executable kannst du die DLL als Supported File einfügen. LabVIEW wird ein Extra-Verzeichnis für diese Dateien erstellen und neben dem EXE ablegen. Dann brauchst du dich um den Pfad nicht zu kümmern.

eg


Relativer DLL-Pfad in VI - integrity - 25.07.2007 10:01

' schrieb:Bei der Erstellung der Executable kannst du die DLL als Supported File einfügen. LabVIEW wird ein Extra-Verzeichnis für diese Dateien erstellen und neben dem EXE ablegen. Dann brauchst du dich um den Pfad nicht zu kümmern.

eg

danke für die schnelle antwort!

nur leider haben wir wie gesagt keine Lizenz wo der application builder dabei ist.
also exe erstellen fällt in meinem fall leider weg..

Gibt es sonst keine andere Möglichkeit wenn nur das VI auf andere PCs kopiert werden kann?

lg


Relativer DLL-Pfad in VI - Y-P - 25.07.2007 10:09

Lade doch mal Dein VI hoch. Ich blicke nicht ganz durch.
Ich hab' Dir aber mal ein Bsp. angehängt, wo Du siehst, wie Du mit relativen Pfaden arbeiten kannst. Das Bsp. gilt für normale VIs und für EXE-Dateien.

Gruß Markus


Relativer DLL-Pfad in VI - integrity - 25.07.2007 10:14

' schrieb:Lade doch mal Dein VI hoch. Ich blicke nicht ganz durch.
Ich hab' Dir aber mal ein Bsp. angehängt, wo Du siehst, wie Du mit relativen Pfaden arbeiten kannst. Das Bsp. gilt für normale VIs und für EXE-Dateien.

Gruß Markus
Es geht eigentlich nur um den "Knoten zum Aufruf externe Bibliotheken", der bei mir unter Konnektivität->Bibliotheken&Programme zu finden ist.
In diesem Knoten, der die DLL öffnet, muss logischweise der Pfad der DLL angegeben werden.
Und diesen Pfad kann ich offensichtlich nur absolut angeben, also C:Dokumente und Einst.........test.dll

Und da wir keine Professional Version haben, ist auch der Application builder leider nicht dabei und ich kann keine executable erzeugen, wie mir eg geraten hat..

hab ichs diesmal besser erklärt?Blush


Relativer DLL-Pfad in VI - Y-P - 25.07.2007 10:24

Achso, Du meinst in dem Knoten selber. Da weiß ich momentan leider auch keinen anderen Rat als Eugen.

Gruß Markus

' schrieb:Es geht eigentlich nur um den "Knoten zum Aufruf externe Bibliotheken", der bei mir unter Konnektivität->Bibliotheken&Programme zu finden ist.
In diesem Knoten, der die DLL öffnet, muss logischweise der Pfad der DLL angegeben werden.
Und diesen Pfad kann ich offensichtlich nur absolut angeben, also C:Dokumente und Einst.........test.dll

Und da wir keine Professional Version haben, ist auch der Application builder leider nicht dabei und ich kann keine executable erzeugen, wie mir eg geraten hat..

hab ichs diesmal besser erklärt?Blush



Relativer DLL-Pfad in VI - integrity - 25.07.2007 10:33

' schrieb:Achso, Du meinst in dem Knoten selber. Da weiß ich momentan leider auch keinen anderen Rat als Eugen.

Gruß Markus


hm.. ist echt blöd...
müssen wir uns deswegen wirklich das application builder add-on um 999€ kaufen... Dry

aber ich glaub bevor ich das tu, muss halt das verzeichnis überall auf C: kopiert werden.. ist zwar dann ziemlich blöd, aber geht halt net anders...

danke trotzdem für eure hilfe!

lg


Relativer DLL-Pfad in VI - eg - 25.07.2007 10:36

Dann würde ich alle verwendeten DLLs neben dem VI legen. Ich glaube LV wird die DLL selber neben dem VI suchen, WENN die DLL nicht dort gefunden wurde, wie im Node angegeben.
Google mal nach "Suchpfade LabVIEW".

eg


Relativer DLL-Pfad in VI - Lucki - 25.07.2007 10:39

Dein Problem ist- wenn ich mich recht erinnere - viel weniger gravierend als man denkt. Es ist zwar richtig, daß man im DLL-Aufrufknoten einen festen Pfad eingeben muß. Wenn aber dann der Pfad nicht stimmt, dann stürzt das Programm doch nicht ab, sondern sucht in bestimmten anderen Pfaden (siehe eg weiter unten), -- und wenn es dort auch nicht fündig wird, dann fragt es den Benutzer höflich nach dem aktuellen Pfad - und das nur ein Mal, d.h. beim allerersten Start auf dem neuen PC. Und damit ist dann alles gegessen.

Aber probier das sicherheitshalber noch mal aus, ich glaube aber es ist so.


Relativer DLL-Pfad in VI - eg - 25.07.2007 10:40

Du kannst die DLLs in eins dieser Pfade legen.

eg