jakaom Posted October 11, 2006 Report Share Posted October 11, 2006 In 8.20 I'm seeing an issue with doing what's contained in this link: http://digital.ni.com/public.nsf/websearch...F5?OpenDocument It just returns: Error 7 occurred at Open VI Reference when the VI contained in the .exe is called dynamically. But the code runs perfectly in 8.0.1 Any ideas? Thanks! Quote Link to comment
i2dx Posted October 12, 2006 Report Share Posted October 12, 2006 you have to wire the "application reference" input of the "open VI reference" VI with the correct application reference. That topic was discussed here cheers, CB Quote Link to comment
jakaom Posted October 12, 2006 Author Report Share Posted October 12, 2006 you have to wire the "application reference" input of the "open VI reference" VI with the correct application reference. That topic was discussed here cheers, CB I tried that just by wiring the output of "Open Application Instance" without anything wired into that function, but this didn't help. Also, NI replied with this being the issue: as of LabVIEW 8.20, VIs in an executable can no longer be programmatically controlled from outside of the executable. In addition, developers can no longer build LabVIEW executables and use them as VI libraries. This means that you can no longer rename an exe to a .llb and gain access to the VI. The reason why this behavior changed wasn't for this security issue, but for compatibility with the upcoming Windows Vista. Meaning that they changed how one can access VI's from inside .exe's. Are they mixed up? Do I just need to give it a different application reference? If what they said is true, any opinion on the best way for me to call VI's from an executable on a run-time system? (I deploy to machines that don't have the LabVIEW development system installed). Do I need to place a .llb instead of the .exe on the machine, and call the VI that's inside the .llb with VI server? Or is there a better way to achieve this? The goal is to have a core executable that never has to change that calls VI's dynamically. That way you can deploy new VI's on a run-time system without have to rebuild the entire application. Thanks!! Jason Quote Link to comment
jpdrolet Posted October 12, 2006 Report Share Posted October 12, 2006 I tried that just by wiring the output of "Open Application Instance" without anything wired into that function, but this didn't help. Also, NI replied with this being the issue: as of LabVIEW 8.20, VIs in an executable can no longer be programmatically controlled from outside of the executable. In addition, developers can no longer build LabVIEW executables and use them as VI libraries. This means that you can no longer rename an exe to a .llb and gain access to the VI. The reason why this behavior changed wasn't for this security issue, but for compatibility with the upcoming Windows Vista. Meaning that they changed how one can access VI's from inside .exe's. Are they mixed up? Do I just need to give it a different application reference? If what they said is true, any opinion on the best way for me to call VI's from an executable on a run-time system? (I deploy to machines that don't have the LabVIEW development system installed). Do I need to place a .llb instead of the .exe on the machine, and call the VI that's inside the .llb with VI server? Or is there a better way to achieve this? The goal is to have a core executable that never has to change that calls VI's dynamically. That way you can deploy new VI's on a run-time system without have to rebuild the entire application. Thanks!! Jason The way you used them, executables were no different than LLBs so continue to deploy with LLBs instead of EXEs. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.