I have an application that uses a .lvlib, this library has many subvi's. From my executable, I can dynamically load subvi's within the library using the "open reference.vi" and passing in just the name as long as the subvi's being called are listed in the "always included" list of my build specification. What I want to do now is load an external subvi (external to the library) using the same method. But when I try to do this, LabVIEW cannot find the external subvi even when it is included as part of the executable. It seems the Paths are getting messed up. Here is what is happening:
Lets say I have Mylibrary.lvlib as my library in the following path C:\MyProject\Mylibrary.lvlib,
and internal.vi as my subvi within the library in the following path C:\MyProject\MySubVis\internal.vi,
and external.vi as my subvi outside of my library in the following path C:\MyProject\external.vi
This is all in the same project.
I'm using the "Open VI Reference.vi" from internal.vi to call external.vi, and I'm including both internal.vi and external.vi in my executable (MyEXE.exe for illustration purposes). When I run this part of my code I get an error and LabVIEW reports the path of my external subvi as: C:\MyProject\MyEXE.exe\MySubVis\external.vi which is really the path for my library subvi. Why?
Either way, when I hard code what is supposed to be the correct path to my external subvi: C:\MyProject\MyEXE.exe\external.vi, LabVIEW can't seem to find the file, its' almost like an access scope problem because I'm trying to access something outside of the library. Is there such thing? If the file is part of my exe why can't LabVIEW find it??? How can I call my external.vi BY NAME from my internal.vi??
Any help is appreciated.