(18.08.2011 08:25 )M@rRy schrieb: Leider habe ich keine andere Version von LV zur Verfügung - obwohl ich gern würde - desalb muss ich damit arbeiten. Ich hatte schon überlegt gehabt ein Drop-Down-Menü zu machen und dann die Case, also genau so wie du es jetzt auch angesprochen hast. Die DLL's sehen auch immer gleich aus aber es werden unter Garantie Neue dazu kommen, die den selben Aufbau, nur ander Informationen, enthalten, deshalb möchte ich es gerne, am besten für einen Unwissenden, es so einfach wie nur möglich halten seine Datei einzubinden und mit der Anlage arbeiten zu können.
Wenn ich den reinen Pfad über das einlesen einer Datei an den Call Libary Function Node gebe geht es so nicht? Also ich habs schon so versucht aber mit den verschiedenen Arten von Pfaden bin ich ein wenig durcheinander gekommen.
Alternativ, ist hier vielleicht eine config (.ini) einfacher?
Dynamisches Verändern des DLL Paths in der Call Library Node ist ein LabVIEW 8.5 Feature. Davor ging das nicht. Soweit Pech für Dich.
Was Du aber tun könntest ist eine DLL zu schreiben die neben den Funktionsparametern auch einen DLL Path bekommt. Dann kannst Du in Deiner DLL Funktion mit LoadLibrary(), GetProcAddress() und FreeLibrary() Deine eigentliche DLL selber laden und ausführen so wie Du das willst.
Eine andere Variante die das Problem nach LabVIEW verlagert, wäre um mittels Call By Reference jeweils die DLL spezifischen VI's aufzurufen. Dann musst Du zwar für jede DLL noch stets ein neues VI schreiben, aber die können ausserhalb Deiner Applikation in einem bestimmten Ordner plaziert werden. Damit kannst Du die Applikation erweitern ohne dass Du sie jeweils neu kompilieren und distributieren musst.
Selber würde ich für die DLL Variante gehen aber das ist nicht ganz trivial. Du musst nämlich auch noch bestimmen zu welchem Zeitpunkt Du jeweils eine DLL wieder aus dem Speicher werfen willst und das korrekt managen.
Und um Konfigurationsdaten zu laden benütze ich immer die INI Files, ausser der Kunde hat bereits ein anderes File Format definiert. Dazu DLLs herbeizuzerren ist wie einen Nagel mit dem Presslufthammer einzuschlagen.