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 

Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?



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!

30.07.2008, 07:18
Beitrag #15

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?
' schrieb:So genau weiß ich das auch nicht. Aber:

Es gibt solche dynamische und solche. Die einen, siehe dein rechtes Bild oben, werden per "Always included" eingebunden und sind daher praktisch ohne Pfad aufrufbar. Solche VIs sind eigenlich nicht richtig dynamisch. Dynamisch sind sie eigentlich nur deswegen, weil sie applikationsspezifisch explizit über "VI-Server" (für SubPanel etc.) aufgerufen werden. Solche VI's werden zur Kompilierzeit eingebunden.

Dann gibt es aber auch solche dynamische VIs, die tatsächlich erst dann eingebunden werden, wenn sie im Programmablauf eben genau jetzt aufgerufen werden sollen. Solche VI's werden dann zur Kompilierzeit eben nicht eingebunden. Dann aber ist der Pfad wichtig. Für was man dieser Verfahrten braucht, weiß ich jetzt nicht. Ich hab sowas noch nie gebraucht.

Für DLL's in C++/Delphi gilt ähnliches: Linken zur Programmstartzeit und Linken per Programmbefehl LoadLibrary.
Ich glaube wir warten mal auf RolfK.

Big Grin

Also das Ganze ist nicht so komplex. Wenn die Open VI Reference Funktion ausgeführt wird macht sie ungefähr folgendes:

Wenn der VI Name nur ein String ist:

1) Schauen im Speicher ob so ein VI schon geladen ist.
2) Schauen im EXE ob da ein solches VI besteht
3) Schauen im Search Path (normalerwise leer in einer Build App aber man kann die entsprechenden INI keys in das zugehörige INI File tun).

Wenn's dann noch nicht geht dann gibts halt einen Error.

Wenn der VI name ein Path ist:

1) Für absolute Pfade zuerst mal schauen ob das VI am ensprechenden Ort liegt.
2) das selbe tun was bei einem String Namen passiert wobei der Filename ohne Pfad als Suchkriterium gilt.

Und jetzt kommts:

In LabVIEW 8.5 bekommt man einen ganz spezifischen Fehler wenn man einen Pfad benützt während das VI schon im Speicher ist. Der Fehler besagt dass es nicht mehr zulässig ist ein VI mit Pfad zu laden wenn es schon im Speicher anwesend ist. Ich denke mal dass das ein Feature ist das hinzugefügt wurde um das Crosslinking in LabVIEW schwerer zu machen und als Hilfe für das entsprechende neue Tool in LabVIEW 8.5 um das Auflösen solcher Crosslinks zu erleichtern.

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
30
Antwort schreiben 


Nachrichten in diesem Thema
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich? - rolfk - 30.07.2008 07:18

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  buildete EXE funktioniert nicht, funktioniert dinamic dispatching in EXE überhaupt? robert_bors 9 9.023 04.02.2013 16:01
Letzter Beitrag: robert_bors
  Aufruf von dynamischen VIs aus EXE freakhome 2 5.843 07.01.2011 01:11
Letzter Beitrag: freakhome
  Problem bei dynamischen Laden des reentrant VI in einer EXE pericles 2 5.535 21.07.2010 10:39
Letzter Beitrag: macmarvin

Gehe zu: