LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

library not found or failed to load

Call library function node cannot be found or cannot be loaded
i am using a third party dll for developement of a software. when i load the vi's, it cannot be run due to broken dependency  as below

RepMat_1-1738593880542.png

 

on analysing the sub vi, i understood it is the probelm call library function node and the specified path

RepMat_0-1738593699465.png

i tried the following,

  1. I coped the dll's to the system32 folder and still have the broken dependency issue
  2. To me now ,the only solution is to change the path manually for all the vis. as there are many vis, it is a time consuming process to change the path of all the vis.

the product and its driver(64 bit):https://www.tpm-pac.com/product/lpe-l122/

How would i make a clean installation of these driver? what would be the proper way to use the call library function node in this case?

thank you in advance

0 Kudos
Message 1 of 4
(137 Views)

Hi RepMat,

 

which bitness do your LabVIEW installations use?

You cannot call 64bit-DLLs with a 32bit LabVIEW…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 4
(130 Views)

@GerdW wrote:

Hi RepMat,

 

which bitness do your LabVIEW installations use?

You cannot call 64bit-DLLs with a 32bit LabVIEW…


I think here is the opposite situation - the LabVIEW is 64 bit (the icon is yellow, not orange), but VIs linked with 32-bit DLL. There are two for each bitness in the project, and the SubVIs needs to be relinked with PCI_L122_DSF_x64.dll instead of PCI_L122_DSF.dll (as well as two other DLLs). This is what I see in the attached project at least.

0 Kudos
Message 3 of 4
(110 Views)

And if you enter PCI_L122_DSF**.dll or even PCI_L122_DSF**.* as library name it will work for both DLL names fine.

 

LabVIEW replaces a * after the file ending decimal point with the platform specific file ending for shared libraries (dll for Windows).

A single asterisk * before that point is replaced with 32 or 64 respectively for the relevant bitness.

A double asterisk ** before the point is replaced with nothing or _64 respectively for the 32 and 64 bitness.

 

This is documented in the online help to the Call Library Node.

Rolf Kalbermatter
My Blog
0 Kudos
Message 4 of 4
(92 Views)