02-19-2015 05:04 AM
Hello folks! I am having a strange issue since I updated to Labview 2014: I have a vi that uses "Open VI Reference" in order to programmatically open the desired vi. It worked flawless also in the compiled version (.exe) of the program until yesterday, when i compiled it again for the first time since my update to Labview 2014. It compiles with no problem, but when i start the exe and load the first vi it already gives me an error "Built Application or Shared Library (DLL): Missing".
The point is that all the VIs that i want to open are inside an LLB that is supposed to be compiled inside the .exe: infact the path that i use to open is:
D:\LabVIEW Data\builds\Sequenzer\Sequenzer2.0.exe\com_lv_sequenzer\trunk\Sequenzer_Functions.llb\Seq_Connect_to_Database.vi
And i get error number 7:
Open VI Reference in Seq_Function_Interface.vi->Sequenzer_Main_2.0.vi<APPEND>
VI Path: <b>D:\LabVIEW Data\builds\Sequenzer\Sequenzer2.0.exe\com_lv_sequenzer\trunk\Sequenzer_Functions.llb\Seq_Connect_to_Database.vi</b>
Built Application or Shared Library (DLL): Make sure all dynamically loaded VIs were properly included in the build specification for the application or shared library.
LabVIEW Real-Time: VIs built into executables cannot be accessed through VI Server calls. Use Source Distributions to dynamically call VIs on Real-Time targets.
The vi Seq_Connect_to_Database.vi is included in my built (as you can see in the attached screenshot and as it has always been).
Do you have an idea of why it is not working anymore?
Thanks a lot in advance!
Dario Cassaniti
Solved! Go to Solution.
02-19-2015 06:55 AM
Dario,
what was your previous LV version?
I understand that the previous EXE was built in an older version of LV....
Norbert
02-19-2015 07:37 AM
It was Labview 2012...
02-19-2015 07:49 AM
If you're not loading the VI dynamically (e.g. as a plugin): Do you wire in the path to the VI directly or do you use the name/path property of a Static VI reference to get the path to the VI? That should return the path to the VI regardless of where it is located within the build (e.g. inside/outside of the executable).
02-19-2015 07:53 AM
That's the way i do it: i read the path of the executable and i build the llb path (and conseguently the vi path) on it...
02-19-2015 11:58 PM
02-20-2015 02:16 AM - edited 02-20-2015 02:17 AM
That's exactly the problem and what I am trying to understand here! The .llb file where all the VIs are is in D:\LabVIEW Data\com_lv_sequ
And here comes the question: which is the path of the VIs included in the exe?
Until my update to LV2014 the llb was included in the exe with this path: D:\LabVIEW Data\builds\Sequenzer\Sequenzer2.0.exe\com_lv_sequ
02-20-2015 07:36 AM
02-20-2015 07:44 AM
I don't really need to include the whole llb, i just need to locate the path of the included VI once the exe is compiled, so that i can start the one i want only by knowing its name..
02-20-2015 08:57 AM
I would check it is calling a correct path inside executable. Something may changed.
You can check if file is really there, list folder should work inside exe:
http://digital.ni.com/public.nsf/allkb/C18336D91FFE3D3086256C47007B71F9