cowen Posted June 24, 2015 Report Share Posted June 24, 2015 Hi Guys, I have a minor problem that I can work around, but I would like to better understand why the problems exists. To explain... I have an application that relys very heavily on external steps and drivers (by external I mean LV code external to the EXE). I also have some code inside the EXE that is actually not used by the EXE but is needed by the external VI's (lets call these VI's 'LibA'). I have modified the build script to ensure that LibA is included inside the EXE and I can see the EXE size increases after configuration and so I am sure this is correct. So the problem - if I try to dynamically launch an external VI that uses a VI from LibA, we get an error and the VI cannot be launched. Of course, if I call the VI's in LibA in the EXE (in a disabled case structure), then the external VI'S can also call VI's in LibA. I do this and it solves my problem. However, in this instance, if I have told the build script to include LibA, and I am sure LibA is compiled in the EXE, why can I not call the Vi's contained within? My best guess is that although the VI's are inside, until they are actually called, the EXE does not have an internal link to them. However, knowing that the EXE is compiled using the folder structure of the project, this is a little curious. Again not a major problem, I can work around it, I only would like to understand. LV2013! Gruß Quote Link to comment
ShaunR Posted June 24, 2015 Report Share Posted June 24, 2015 Can you give an example? Most people fall foul of the change in path between development and executable. Quote Link to comment
cowen Posted June 24, 2015 Author Report Share Posted June 24, 2015 No - I have been using LabVIEW for about 11 years and have learnt these things the hard way!! - I am absolutely positive that the path is correct. :-) I can't provide my whole project, its much too big, however maybe I can prepare a small functional example demonstrating the problem. Is the following explanation any better? If not I prepare an example. My EXE contains many VI's including VI_A and VI_B. These 2 VI's are called often by the external VI's. VI_A is also called by the EXE but VI_B is not. Both VI_A and VI_B are compiled into the EXE due to configuration of the build script. My external VI (VI_X) is written to call VI_A. When VI_X is dynamically called from the EXE it loads without issue. I modify VI_X to now call VI_B. Now when VI_X is called dynamically the EXE informs me that the VI is broken. Quote Link to comment
chris754 Posted June 24, 2015 Report Share Posted June 24, 2015 You are most likely missing a dependency. Do you have "remove unusued members of project libraries" checked in the EXE build spec? This can lead to issues if VI_X needs a vi in a library and the EXE does not. 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.