From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Creating an executable and installer for user.lib files

Solved!
Go to solution
Solution
Accepted by mini09

No, the default folder to include libraries like that is in the "<exe folder>\data" , but you can change that in the executable build specifications. Also, for the vision functions (IMAQ and IMAQdx) you are required to have a vision acquisition software license on each computer you deploy to, which is ~$430 last time I checked. So if your camera is not working, it could be that you didn't activate a vision license.

0 Kudos
Message 11 of 17
(1,218 Views)
Solution
Accepted by mini09

As greg said you don't need to worry about where the DLL is in a built EXE.  The compiler will in most cases detect that there is a dependency and include it automatically in the support folder with the EXE.  If you are having issues with getting your application to work I'd suggest looking at the basic error handling (which may state a licensing issue) or even just open the camera in MAX and see if you can communicate with it if it uses the normal IMAQ drivers.

0 Kudos
Message 12 of 17
(1,205 Views)

Okay, Thanks Hooovahh and Gregoryj. I'll work on this and once completed I'll mark this post solution. 

 

I also have another question, for example, if A.dll has a dependency in B.dll and the project has only A.dll under dependency tree? How shall this be taken care?

 

Thanks

0 Kudos
Message 13 of 17
(1,189 Views)

@gnshmrthy wrote:

Okay, Thanks Hooovahh and Gregoryj. I'll work on this and once completed I'll mark this post solution. 

 

I also have another question, for example, if A.dll has a dependency in B.dll and the project has only A.dll under dependency tree? How shall this be taken care?

 

Thanks


By getting rid of text programming weenies.

 

Seriously though,. If a.dll has deeper dependant .dlls they should be in your project dependencies for each target.  There is a reason why each build spec has a preview!  

 

And, of course, you list those external dependencies in your readme file!  Right?


"Should be" isn't "Is" -Jay
0 Kudos
Message 14 of 17
(1,184 Views)

@gnshmrthy wrote:

Okay, Thanks Hooovahh and Gregoryj. I'll work on this and once completed I'll mark this post solution. 

 

I also have another question, for example, if A.dll has a dependency in B.dll and the project has only A.dll under dependency tree? How shall this be taken care?

 

Thanks


Basically the original developer of that A.dll should have created an installer that installs all the necessary secondary dependencies on a system. And you are then supposed to run that installer.

The developer is the person who knows best what his component all needs on different versions of the OS and how to install them best and create the correct registry settings for it to work. If there is no such installer he was lazy Smiley Very Happy.

 

If you really know to absolutely know what you are doing and can figure out all the possible secondary dependencies, and those dependencies don't require registry settings to be added to the system, and .., and .., then you can add these secondary DLL dependencies to your application installer yourself and make sure they get into the same directory that your executable ends up. This is one of the first directories that Windows checks when a DLL requires another DLL to be loaded. Windows doesn't know about a data folder inside your application folder and LabVIEW doesn't know about secondary dependencies of DLLs, only the direct dependencies that your Call Library Nodes specify. 

Rolf Kalbermatter
My Blog
Message 15 of 17
(1,179 Views)

@rolfk wrote:

@gnshmrthy wrote:

Okay, Thanks Hooovahh and Gregoryj. I'll work on this and once completed I'll mark this post solution. 

 

I also have another question, for example, if A.dll has a dependency in B.dll and the project has only A.dll under dependency tree? How shall this be taken care?

 

Thanks


Basically the original developer of that A.dll should have created an installer that installs all the necessary secondary dependencies on a system. And you are then supposed to run that installer.

The developer is the person who knows best what his component all needs on different versions of the OS and how to install them best and create the correct registry settings for it to work. If there is no such installer he was lazy Smiley Very Happy.

 

 


I'll take that as a second for the motion to get rid of the text weenieHeart


"Should be" isn't "Is" -Jay
0 Kudos
Message 16 of 17
(1,163 Views)

Thanks Jeff and Rolf...

 

 

0 Kudos
Message 17 of 17
(1,148 Views)