LabVIEWForum.de - Pfade für dll

LabVIEWForum.de

Normale Version: Pfade für dll
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo ich suche gerade eine Lösung für folgendes Problem:

ich möchte den Pfad zur .dll relativ eingeben. Also wie z.B. bei HEADER ..dllxxx.dll . Leider weigert sich LabVIEW, und nimmt immer den aktuellen Pfad.
Gibt es da eine Möglichkeit?
Zum besseren Verständnis eine Beispiel - Ordnerstruktur:

c:Geraet1dllxxx.dll
c:Geraet1xxxdll_Aufruf.vi

Dabei sollen für verschiedene Geräte die dll's und die Aufrufe identisch sein und z.B. im SourceSafe nur einmal gepflegt werden.

Die automatische Suchfunktion ist problematisch da gleichzeitig andere (ältere) Versionen der dll auf der Platte vorhanden sind.
Du kannst den Pfad im BD erstellen.
' schrieb:Du kannst den Pfad im BD erstellen.

OK aber leider nicht im LV6.1.
Gibt es da eventuell noch andere Möglichkeiten?
Danke Mirko
Glaub ich nicht. Aber du kannst die DLLs einfach unterschiedlich benennen, dann hast du keine Probleme mehr.
' schrieb:Glaub ich nicht. Aber du kannst die DLLs einfach unterschiedlich benennen, dann hast du keine Probleme mehr.

Entschuldigung aber ich suche eine professionelle Lösung. Ich kann kaum SW-Gleichteile pflegen um sie dann jedesmal umzubenennen.
Hat jemand vieleicht einen besseren Vorschlag?
Danke Mirko
Du könntest es mal mit den Suchpfaden in der ini-Datei deiner exe versuchen:

http://wiki.lavag.org/LabVIEW_configuration_file/Paths

MfG, Jens
' schrieb:Entschuldigung aber ich suche eine professionelle Lösung. Ich kann kaum SW-Gleichteile pflegen um sie dann jedesmal umzubenennen.
Hat jemand vieleicht einen besseren Vorschlag?
Danke Mirko

Da gibts nur zwei wirklich professionele Lösungen:

1) Upgrade nach LabVIEW 8.2 oder besser
2) Schreibe eine Wrapper DLL die die Pfadberechnung macht und die jeweils richtige DLL lädt mittels LoadLibrary und auch die entsprechenden Funktionspointer mit GetProcAddress lädt und dann dadurch aufruft.

Zu 2): Wenn die aufzurufende DLL innerhalb eines Kontextes nicht ändert, würde ich das tun indem ich dem Wrapper einen extra ersten Parameter übergebe. Dann gibts eine Loadfunktion die den Pfad zur DLL bekommt und einen Pointer auf eine Struktur zurückgibt die alle gültigen Funktionspointer der DLL enthält. Danach gibst Du diesen Pointer an alle anderen Wrapperfunktionen als ersten Extraparameter, die diesen indeziert und die richtige Funktion aufruft. Ist etwas Arbeit aber sobald Du das Gerüst einmal hast ist es ein Leichtes um neue Methoden hinzuzufügen. Im Prinzip machst Du damit eine Form von C++ Objekt aber das geht in dieser Art auch ganz einfach in C.

Aber vielleicht wäre ein Upgrade in Hinblick auf die andernfalls zu verrichtende Arbeit und was dieses Dir damit erspart gar nicht so teuer!

Rolf Kalbermatter
Laut Profil hat er doch schon LabVIEW 8.5!? Huh

Gruß Markus

' schrieb:Da gibts nur zwei wirklich professionele Lösungen:

1) Upgrade nach LabVIEW 8.2 oder besser
2) Schreibe eine Wrapper DLL die die Pfadberechnung macht und die jeweils richtige DLL lädt mittels LoadLibrary und auch die entsprechenden Funktionspointer mit GetProcAddress lädt und dann dadurch aufruft.

Zu 2): Wenn die aufzurufende DLL innerhalb eines Kontextes nicht ändert, würde ich das tun indem ich dem Wrapper einen extra ersten Parameter übergebe. Dann gibts eine Loadfunktion die den Pfad zur DLL bekommt und einen Pointer auf eine Struktur zurückgibt die alle gültigen Funktionspointer der DLL enthält. Danach gibst Du diesen Pointer an alle anderen Wrapperfunktionen als ersten Extraparameter, die diesen indeziert und die richtige Funktion aufruft. Ist etwas Arbeit aber sobald Du das Gerüst einmal hast ist es ein Leichtes um neue Methoden hinzuzufügen. Im Prinzip machst Du damit eine Form von C++ Objekt aber das geht in dieser Art auch ganz einfach in C.

Aber vielleicht wäre ein Upgrade in Hinblick auf die andernfalls zu verrichtende Arbeit und was dieses Dir damit erspart gar nicht so teuer!

Rolf Kalbermatter
' schrieb:Laut Profil hat er doch schon LabVIEW 8.5!? Huh
Guckst du Beitrag #3.
Das hab' ich ja gesehen. Wenn ich doch aber 8.5 hab', wieso nehme ich dann 6.1?!Hmm

Gruß Markus

' schrieb:Guckst du Beitrag #3.
Seiten: 1 2
Referenz-URLs