Jump to content

labVIEW2018 build EXE reports an error!


mooner

Recommended Posts

I have installed win10 in a virtual machine and the development environment is LabVIEW 2018, when I finish coding and ready to package to generate EXE file it reports an error. Can anyone give me some hints as to why this is? (The program works fine in the development environment. DAQNavi.dll, this is an io card related DLL, I have installed his driver)

error.PNG

Link to comment

It looks like it's trying to find the DAQNavi.dll in your Windows\System32 directory.  Did you confirm that it is there?

Also, it looks like your build directory is on your D:\ drive.  Is it there and accessible/writable?  I'm somewhat old school, so D:\ drives mean CD/DVD ROMs to me, but that may or may not be your case. 

Link to comment

More importantly the path to the DAQNavi.dll definitely is wrong! Yes it tries to find the DLL, which might or might not be there.

No, it should NOT try to copy it into your application build.

Any DLL located in the System folder got installed there by its respective installer. And should be placed there by that installer on any system you want to run an application that uses that DLL.

LabVIEW has a particular treatment of the DLL library name in the Call Library Node. If the path specified there is only the shared library name without any path, it will let the OS search the DLL and Windows will automatically find it in the correct System directory. And the Application Builder will treat such a library name as indication to NOT include the DLL in the build. This CAN be important for custom DLLs that get installed in the System folder. It is ABSOLUTELY paramount and important to do for Windows standard DLL. If the path is not the library name alone, the Application Builder will try to copy the DLL to the built folder too and for Windows DLLs that means that the application will try to load that "private" copy of the DLL, and that goes catastrophically wrong for most Windows DLLs, as they rely on being located in the canonical System directory or all hell breaks loose.

Try to edit all Call Library Nodes that use that DLL to only specify the DLL name alone without any path. The path usually looks like reverting back to full path, but that is a sort of quirk in the Call Library Node dialog. LabVIEW generally will attempt to update the path to where it actually got the DLL loaded from, yet it still stores the former user entered path in the VI itself.

And are you using 64-bit LabVIEW 2018? Or a 32-bit Windows system? Otherwise that path is anyhow wrong. On a 64-bit Windows system, C:\Windows\System32 is for 64-bit DLLs. Unless your LabVIEW system is 64-bit too, that DLL in that folder definitely should not be the right one for your LabVIEW system. If the according installer put a 32-bit DLL in there, which would be pretty hard thanks to Windows path virtualization, this same Windows path virtualization will make it impossible for LabVIEW to reference that DLL there.

Edited by Rolf Kalbermatter
Link to comment
  • 4 weeks later...

Sorry it's been so long! I'm not sure what the problem is with this one. This source code was given to me by someone else. Then I made a new copy of it and I don't have this problem anymore. Anyway, this is not a typical problem, so please ignore it. Thanks to Rolf for his patience in answering this question, it more or less taught me something.

 

Link to comment

Join the conversation

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

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
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.