The idea behind dynamic call is to save memory because nothing will be loaded into the memory until you call it dynamically so that it makes it possible to work with very large scale projects without crashing the PC memory. If we stuff everything into a single .exe file (it would not be dynamic call anymore because static VI references needed to be used), everything would be loaded at program start and it may run fine or may crash depending on the project size. I think, for dynamic calls, you still need to define a path for those VIs which are called dynamically and the destination would still be outside of the .exe file. I never tried building a single .exe file with all VIs in it because my applications were big scale and modular and PC would run out of memory if I called everything at program start.
Thank you very much for your kindly reply. I tried to follow your suggestions but I failed to have the llb files. In fact, my concern is I want to share with my user the release without including any .vi files inside, for protecting source code purpose. Below is my project structure. mainGUI.vi is my main user interface. SubVI is sub vi used in main and PlugInVI contains VI provided by other developer and inserted into mainGUI. The other 3 folders are sub vi used in vi in PlugInVI folder.
Below is my steps on building .exe file. In this way, I need to put all folders, Driver_8743, PlugInVI, SubVI, etc., to directory of my .exe in order to run it properly. Is there a method that I can covert those folder into other format so that there is no .vi file appears in my .exe release package.
I am a beginner of LabVIEW and I am having a problem when I build .exe file for my project by using LabVIEW2015.
My project has several sub vi which are done by other developer. Those sub vi will be inserted to sub panels on front panel of my mainGUI.vi.
Folder PlugInVI contains sub VI created by other developer and the first 3 folders contain vis called internally in sub VI inside PlugInVI. Folder SubVI contains sub VI used in my mainGUI.vi. mainGUI.vi called those plug-in VI by using below method.
I tried to build the .exe file for my project with below configuration.
Then I have below problems and questions:
1. I need to put those PlugInVI folder together with my .exe file. (I think this is due to my implementation of inserting sub VI in my main code) But in this way, I am sharing out the source code actually. We would like to know is there a way that I can share our my exe folder without having those "source code"?
2. Is there any other way to display front panel of my sub VI in the front panel of my mainGUI?
3. A very "beginner" question, what do you usually do in compiling .exe file when you have large-scale project with those external sub VIs?
Thank you very much!
When you create the llb destination, go to Source file settings, there is a check boxes there for " Remove Front Panel" and "Remove Block Diagram", I always check remove block diagram option so that even you ship your VIs with your build, no body would be able to see the block diagram. You can also check remove front panel option as well so that your source code will definitely be double protected. I assume you have no other option then ship your plugin VIs since you are using dynamic calls. There are other ways to protect source code by restructuring your project but it would take a lot of time and effort to migrate your project into new structure. Creating llb files seems like the fastest and easiest option for you.
For the llb files not being created, use the Generate Preview under Preview category so that you can see if llb file/s are created or not and if not, go back to Source files, Destinations, Source file settings and make sure everything is addressed right then try again. I hope you will succeed.
Thank you for all your kindly reply very much. It helps me a lot on improving my LabVIEW skills. I tried your suggestions to build the llb files and it succeeded with below settings. But I had problems when I ran the .exe file.
1. I cannot successfully run my mainGUI.exe because it failed when inserting PlugInVI. After I individually ran plug-in vi with relocate one of the file used in the plug-in vi, I can ran main successfully.
2. All vi in extracted folder from .llb files still have front panel and block diagram even I check the "remove" box while building.