Hallo Jan,
meines Wissens nach gibt es 3 Möglichkeiten ein VI zu laden.
1: Statisch gelinkt als SubVI
2: Über die Funktion "Open VI Reference" aus einem bereits geladenen VI.
3: Über die Funktionen "Open Application Reference" und "Open VI Reference" in einer fremdem LV Anwendung.
Im Fall 1 hätte das VI_B einen Caller, damit wäre das Problem gelöst ist aber nicht.
Im Fall 2 hätte das VI_B keinen Caller, der VI Name wird an irgendeine Instanz der Funktion "Open VI Reference" eines jetzt bereits geladenen VIs übergeben. Ausser dem Haupt-VI müssen auch alle bekannten dynamischen VIs geladen sein. Mit einem Breakpoint und einer Probe für jede Instanz sollte das VI gefunden werden, das VI_B lädt.
Im Fall3 ist das g
anze mit folgenden Szenario zu erreichen: Die geladene Anwendung A verbindet oder startet eine zweite Anwendung B, evtl. auf einem anderen Rechner. Die Anwendung B erkennt diese Verbindungsaufnahme, verbindet sich mittels "Open Application Reference" mit der Anwendung A und lädt dort VI_B. Dies läßt sich mit den Einstellungen in Tools >> Options >> VI Server: Exported VIs" verhindern. Vielleicht bringt Anwendung B dann eine Fehlermeldung.
Und wenn das alles nicht hilft, bin ich mit meinem Latein am Ende.
Anmerkung: Ich habe nur ein englisches LV und weiß daher die deutschen Übersetzungen nicht.
Waldemar
Waldemar
Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
Don't forget to give Kudos to good answers and/or questions