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!
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?
' schrieb:Im Entwicklungssystem ist das kein Problem da die VIs physisch auf der Disk sind von wo sie auch per Pfad geladen werden. In einem Executable gings aber nur wenn statt einem Pfad nur der VI Name als String angegeben wurde, da 8.5 sich weigert VIs von anderswo auf der Disk (hier innerhalb der LLB im EXE) zu laden dann was der Pfad angibt.
es kann auch vorkommen, das LV in der Entwicklungsumgebung deswegen rummeckert: ich hab aktuell gerade wieder ein Projekt, dass ich das letzte mal mit LV 8.2.1 angefasst habe auf LV 8.5.1 hochgezogen. Dabei habe ich die Ordner-Struktur im Project-Explorer neu aufgebaut und unter anderem "auto-populating-Folders" verwendet. Beim Deploy auf das RT Ziel meckert LV rum, dass es VIs gäbe, die bereits von einer anderen Position geladen sind und fragt nach, ob ich die Konflikte lösen will ...
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?
' schrieb:es kann auch vorkommen, das LV in der Entwicklungsumgebung deswegen rummeckert: ich hab aktuell gerade wieder ein Projekt, dass ich das letzte mal mit LV 8.2.1 angefasst habe auf LV 8.5.1 hochgezogen. Dabei habe ich die Ordner-Struktur im Project-Explorer neu aufgebaut und unter anderem "auto-populating-Folders" verwendet. Beim Deploy auf das RT Ziel meckert LV rum, dass es VIs gäbe, die bereits von einer anderen Position geladen sind und fragt nach, ob ich die Konflikte lösen will ...
Meine Bemerkung war nicht gemeint dass das Problem im Entwicklungssystem nicht auch passieren kann, sondern dass im Falle unseres LuaVIEW Toolkits dieses Problem auftrat sobald man eine damit gebaute Appliation als Executable distributieren wollte. Die im Hintergrund dynamisch geladenen Task VIs werden da ja schliesslich vom LuaVIEW Task Manager von einer spezifischen Stelle geladen. Wenn diese nicht übereinstimmt mit der wirklichen Stelle, dann ist im Setup der Applikation etwas verkehrt und da kann LabVIEW natürlich nichts mehr machen.
Um die Distribution eines Executables zu vereinfachen werden aber diese dynamischen VIs eben als dynamic VI in das Executable Build mitgenommen. Vor LabVIEW 8.5 war es kein Problem das die entsprechenden Open VI Reference Nodes einen Path mitbekamen da LabVIEW die VIs innerhalb des Executables finden konnte und einfach lud. In LabVIEW 8.5 mussten alle diese Stellen gepatcht werden wobei im Entwickelsystem ein Open VI Reference mit Path input benützt wird und in einer built Application eines mit String input. Das Ganze konnte aber leider nicht mit einem SubVI ersetzt werden, da die Open VI References mit verschiedenen Strict Typedefed VI References arbeiteten. Und die undokumentierten XNodes dafür bemühen schien uns noch unangenehmer dann jede dieser Stellen individuel mit einer entsprechenden Code Sequence zu ersetzen.
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?
' schrieb:Bild nochmal hochladen, bitte. Da ist was beim Upload schiefgegangen.
Gruß, Jens
nein, ist schon richtig so. das bild war vorher schonmal.
auf dem bild ist etwas zu sehen was ich nicht in den funktionen finden kann. (daher kann ich auch kein eigenes bild machen)
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?
' schrieb:nein, ist schon richtig so. das bild war vorher schonmal.
auf dem bild ist etwas zu sehen was ich nicht in den funktionen finden kann. (daher kann ich auch kein eigenes bild machen)
Au Mann, und ich soll jetzt suchen, wo das Bild ist...
Das sind tolle Hinweise...
OK, hast Glück, dass es das Bild im ersten Beitrag des Threads ist. Aber dann füge das nächste Mal bitte einen Querverweis zu diesem Beitrag ein. http://www.LabVIEWforum.de/index.php?s=&am...ost&p=54517
Oder lade das Bild selber herunter und nochmal hoch. Aber so ist das Mist.
Jetzt zur Frage, ich weiss nicht, ob es Call by Reference Node schon bei LV6.1 gab, aber ich denke schon. Such mal hier:
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Wie funktioniert Einbindung eines dynamischen VIs in eine EXE wirklich?
"Call by reference node" platzieren, Rechtsklick auf "Reference"-Eingang, dann "Create"->"Constant". Auf die Konstante rechtsklicken, dann "Select VI Server Class" -> "Browse". Jetzt noch das VI auswählen,.... fertig.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------