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: 

LabView 2019 & Mdsplus. MDSobjectsLVShr.dll missing

Solved!
Go to solution

I need to make some program using Mdsplus in LabView 2019. I downloaded the latest Mdsplus 7.92 and installed. But when I tried to open an example, it asked to load MDSobjectsLVShr.dll, which I can not find. The installation manual at www.mdsplus.org also indicates that make sure MDSobjectsLVShr.dll is present. Can someone tell me where to find and install this library? Thanks very much. 

0 Kudos
Message 1 of 9
(3,100 Views)
Solution
Accepted by topic author wisc

The MDSPlus documentation seems surprisingly vague about where that shared library should be found, considering the detailed description of the rest of the LabVIEW interface. But it seems definitely and positively something that should be installed by the MDSPlus installer itself. LabVIEW doesn’t install it for sure.

 

Possible locations might be the Windows\System32 folder if you use Windows and LabVIEW both in the same bitness (32 or 64-bit) or SysWOW64 if your Windows is 64-bit and your LabVIEW is 32-bit.

 

What bitness is your OS, MDSPlus and LabVIEW installation? What version?

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 9
(3,027 Views)
Solution
Accepted by topic author wisc

Although the default Search in modern Windows is slow and awkward, you could simply search the entire C: drive for MDSobjectsLVShr.dll.  Did you try that?

 

Bob Schor

0 Kudos
Message 3 of 9
(2,936 Views)

Thanks very much for the help. I just found it in the system32. 

0 Kudos
Message 4 of 9
(2,649 Views)

Yes, I found it in the system32. Thanks very much for the help.

0 Kudos
Message 5 of 9
(2,648 Views)

Hi Rolf,

Now I have a new problem. My Win10 is 64 bit. LabView2019 is 32 bit (because LabView Realtime is only compatible with 32 bit Labview ). The latest version of Mdsplus is 7.92. I don't actually know what bitness it is (probably 64 bit).

I found the MDSobjectsLVShr.dll if I go directly to Windows\System32. But if I call the library in LabView VI, it doesn't show it (see the screen shot).

wisc_1-1580156501397.png

If I copy the MDSobjectsLVShr.dll to some other directory and call it from that directory, it shows that 'The library selected is not valid for the current platform. For example, you are running 32-bit Labview and the library might be a 64-bit library'. 

 

Then I tried to install earlier version of MDSplus. For any version before 7.79_0 (Jul. 2019), when I open an example of MDSplus (coming with the installation), it shows 'the VI is too old to convert to labview 19'. But the version after 7.79_0 including the latest, it has the library incompatible issue. 

 

Any ideas of how to solve this version incompatible issue? Do I have to go to earlier version of LabView (which means I have to reinstall Realtime, cRIO, etc to earlier version too)? Thank you!

 

 

 

0 Kudos
Message 6 of 9
(2,633 Views)

The 32-bit MDSobjectsLVShr.dll is in SysWOW64 (hate the stupid naming of Windows System folders).

 

An Aside: I have done MDSplus LabVIEW integration for a client.  We rejected the "Objects" LabVIEW library as, well, written by a C++ programmer who doesn't use LabVIEW.  We instead wrapped the older MDSip.dll and built a much simpler to use library.  Unfortunately, that library is not mine to make public.  Also, one needs to be reasonable adept at wrapping C dlls.  Not RolfK level, but experienced. 

0 Kudos
Message 7 of 9
(2,473 Views)

James answered the basics already. If the tool installs its DLLs into System32 on a 64-bit system and its installer is not brain damaged, then it is definitely a 64-bit installation. As Brian mentioned, 32-bit libraries should be located in SysWOW64.

When a 32-bit application requests to load a DLL by name only, Windows will automatically search in SysWOW64 and if it requests to load a DLL with explicit path to System32\DLLname.dll Windows will "helpfully"  redirect that request to SysWOW64\DLLname.dll.

Copying a DLL out of System32 to be loaded into a 32-bit application is not a solution. The 64-bit DLL is only a bunch of garbled bits for a 32-bit application and Windows refuses to load it into a 32-bit process.

 

LabVIEW 2019 is able to load VIs created with LabVIEW 6.0 or later. So if the VIs included in your MDSPlus versions you mentioned can't be loaded, then there was someone using a VERY VERY ancient LabVIEW version to create those VIs (version 6.0 was released in May 2000 and VIs saved in that version would be loadable).

 

The quick fix is likely to install MDSPlus before 7.79 and get the VIs provided in there upconverted to a version beyond 6.0. LabVIEW 8.21 (released in 2007) was the last version that could load LabVIEW 4.0 and 5.x VIs. Another combination might be to use the LabVIEW VIs from version 7.79 or newer and an MDSPlus installation before 7.79. But that is a tricky one as I can not say if there were any changes in the DLL interface between those versions and if they made some modifications to the VIs to work with the 64-bit DLL besides upconversion of the VIs to a more recent LabVIEW version (LabVIEW 2009 was the first version available with a 64-bit version). If anything chaged in the binary interface of the DLL when they made that jump, the above hybrid solution would surely cause issues like crashes or worse (not crashing but still corrupting memory somehow which can lead to almost undebuggable errors).

 

From the few comments on the MDSPlus GitHub Issues page refereeing to the LabVIEW interface that I looked at it appears that the developers there aren't quite LabVIEW experts. There appears to be a lot of guessing, and trying to fix things by trial and error. Not an ideal solution for an interface I would want to use in a production type application!

Rolf Kalbermatter
My Blog
0 Kudos
Message 8 of 9
(2,448 Views)

Rolf, thanks so much for the detailed explanation. There is no MDSobjectsLVShr.dll in the folder SysWOW64 when I install the newer versions of MDSplus, only in System32. The Mdsplus VIs before version 7.79 were written with Labview 5. You are right, that is why these can not be loaded in Labview 2019. Fortunately our old PC runs LabView 8.2, so I loaded the old Mdsplus VIs in LabView 8.2, and re-saved them in LabView 8.2, then they can be loaded in LabView 2019 and seems working so far. The Mdsplus website really does not have much information on the LabView interface. 

Message 9 of 9
(2,418 Views)