12-12-2010 08:51 AM
I want to deploy an exe containing a subpanel onto a system without the LabVIEW development environment. I want to load another exe into the subpanel.
I am missing something pretty basic but how do I open a reference to the exe? I know how to open run and load a vi into a subpanel but how do I reference it if it is an exe? Open vi reference says it is an unexpected file type.
Solved! Go to Solution.
12-12-2010 03:58 PM
Is your .exe a labview application?
If not, I don't like your chances.
I am successfuly loading a vi into a compiled .exe.
I use a .llb to contain all of the controls and VI's neccesary for the subpanel.vi
I know it doesn't solve your problem directly but I thought it might give you an alternative solution.
12-12-2010 04:04 PM
Supplimentary info I just found trying to solve my problem
http://digital.ni.com/public.nsf/allkb/FD7DE8BC8FFC256C862565F4006BE363
May help
12-13-2010 09:34 AM
Yes my exe that I want to load into a subpanel is also a LabVIEW application.
But I found the solution which turned out to be much simpler than I thought. A compiled LabVIEW application on a system without the development environment can load a plain old vi into a subpanel. I guess I didn't understand the compiler. I thought that a compiled application deployed on a system without the development environment would not be able to load a vi unless that vi was also compiled into an exe. I discovered after a simple test that this assumption was wrong.
12-13-2010 10:37 AM
"compiled into an application" is rather strong language. A LabVIEW executable is nothing more than your project vi's wrapped in a zip-like compression file. The LabVIEW runtime still interprets the VIs and handles execution.
12-13-2010 03:16 PM
Thanks. I did not know that. I have a pretty good understanding of the G language but I have never looked very deeply under the hood at the LabVIEW compiler, runtime engine, etc..
But what you say makes a lot of sense now that I think about it. If it LabVIEW really did "compile the vi into an application" then it probably would not need the runtime engine..
12-13-2010 04:06 PM
@Nickerbocker wrote:
"compiled into an application" is rather strong language. A LabVIEW executable is nothing more than your project vi's wrapped in a zip-like compression file. The LabVIEW runtime still interprets the VIs and handles execution.
Is that the case? It may only be a case of semantics, but I was under the impression that the code was truly compiled?
See rolfk's comments here
http://forums.ni.com/t5/LabVIEW/If-click-white-arrow-to-run-vi-is-vi-compiled-first/m-p/1112571
I only know what I've seen on the forums and am just curious as to what actually goes on.
12-13-2010 05:03 PM
To prevent an argument,
The VI includes "compiled" objects that are updated each time you run your VI.
These compiled objects make the equivalent to function calls into the labview runtime.
This is not so different to how the .net framework behaves.
YOur basic functions such as +,-,x,/, may be compiled into simple microcode, anything that requires smarts will be in the runtime or framework
So everyone is right, it just depends on which angle you are looking at it.