Jump to content

Build Script with unnused internal VI's called from external VI's

Recommended Posts

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.






Share this post

Link to post
Share on other sites

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.

Share this post

Link to post
Share on other sites

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.

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...

Important Information

By using this site, you agree to our Terms of Use.