02-19-2020 01:52 PM
Hi,
I am trying to figure out a way to run an executable VI with few new support vi's which were not compiled when the executable was created.
Is there a way to change Vi's in a project folder and use the new VI to run the executable VI which is calling it without recompiling any making a new executable.
Best Regards,
Nitin
02-19-2020 01:58 PM
You would have to dynamically load the VI. What you are asking for is a plugin architecture. The dynamically loaded VIs could be source files or packed project libraries. While this can allow some modifications to occur without needing to rebuild your application it is not guaranteed that you will not need to rebuild the exe. Is will depend on what changes you are making.
02-19-2020 03:12 PM
To expand on what Mark said, you would also have had to create the original executable with a plugin architecture in mind. If the original executable didn't have a plugin architecture in place when it was built, you cannot change it anymore. It sounds like you have an old executable you'd like to modify without recompiling, which can't be done (unless it was designed with a dynamically loading plugin system like Mark described).
02-19-2020 05:19 PM
Thank you guys,
I will dig deeper on we are calling the VI's in our executable and if I need more help I will post it here.
02-19-2020 08:21 PM
As a brief side note, for VIs you'd need to call them dynamically (as already described).
However, for PPLs (Packed Project Libraries, .lvlibp files) you can directly call them (like normal VIs) statically - but you must stop the executable and restart it to load a new PPL when you replace the lvlibp file.
To change/update behaviour whilst an executable is running, you still need dynamic calls, even for PPLs. An article describing this can be found here: Refuelling in flight.
Note that's quite a bit more tricky than simply restarting the exe with a new lvlibp file if restarting is a possibility.