LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Internet toolkit DLL conflict in LabVIEW 2011

We're using LV 2011 SP1 for a project with National Instrument Internet Toolkit for LV 2011. There is a DLL linkage issue that we enoucnter with this setup. The internet toolkit comes with a version of DOMUserDefRef.dll (C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\addons\internet) and there is another version of the same DLL installed under the resource folder (C:\Program Files\National Instruments\LabVIEW 2011\resource). These DLLs are used by the XML parser that ships with LabVIEW and the internet toolkit.

 

Now the problem is that when in multi developer environment, the source code that uses XML parsing is opened from a different location than the original source code, the linker fails to link to the correct version of the DLL. Say developer A has his source code at C:\a and developer B has her source code at C:\b\b. If developer A saved a VI that uses the XML parser, then when developer B opens the VI, the LabVIEW linker may link to the wrong version of the DLL. Actually we have seen some of the VIs to link to one version of the DLL and some other VIs to link against anoter version of the DLL. 

 

The issue may become ever more challenging if 64-bit build machine with 32-bit LV is used (a common configuration we use) where the 32-bit applications are installed to different default location.

 

Expected result would be not seeing any warnings when opening the project and LabVIEW correctly relinking to the right version of DLL when opened by another user on a different computer. The bug is caused by the fact that the linker seems to use relative paths to link to property and invoke nodes of the XML dom reference type. The warning messages we get are of type below when code is opened from C:\projects\a\b\My XML Prj instead of c:\projects\My XML Prj. The code breaks becose the wrong DLL doesn't have all the methods.

 

C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\xml\Close Reference(Impl).vi (NI_XML.lvlib:Close Reference(Impl).vi) - The shared library expected to be at "C:\Program Files\National Instruments\LabVIEW 2011\resource\DOMUserDefRef.dll" was loaded from "C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\addons\internet\dom\DOMUserDefRef.dll".

 

C:\projects\a\b\My XML Prj\My Parser\LoadXMLFile.vi (My Parser.lvclass:LoadXMLFile.vi) - The shared library expected to be at "C:\projects\a\Program Files\National Instruments\LabVIEW 2011\resource\DOMUserDefRef.dll" was loaded from "C:\Program Files\National Instruments\LabVIEW 2011\vi.lib\addons\internet\dom\DOMUserDefRef.dll".

 

My question is, is this isse fixed in LabVIEW 2011f2 or LabVIEW 2012? What is the suggested workaround?

--
Tomi Maila
0 Kudos
Message 1 of 3
(2,242 Views)

My suggested workaround would be to completely delete the older of the DLLs and any VI libraries that might refer to them. Most likely the one in the addons directory is older since the DLL was moved into main LabVIEW to support some extra functionality in core LabVIEW even if the Internet Toolkit is not installed, which is the case for most people.

 

The newer VI library referencing to the DLL in resources should be located in vi.lib/xml. Just make a backup of the one in the addons directory for your ease of mind before deleting that directory.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 3
(2,231 Views)

I wonder if you have installed an old version of the Internet Toolkit, for instance by copying it from an older LabVIEW version instead of installing it from the LabVIEW installation DVD? I have here a LabVIEW 2010 installation with Internet Toolkit installed and no trace of any xml library in vi.lib/addons/internet, only the one in vi.lib/xml.

Rolf Kalbermatter
My Blog
0 Kudos
Message 3 of 3
(2,229 Views)