07-11-2023 08:01 AM
Hi,
I have an application using the cvitdms library to create and populate TDMS files. The application is built statically and tested on a two devices where everything works fine. There is a third PC I need to run it on which when the function TDMS_OpenFile() is called it returns error code -6614.
Looking at the error codes this corresponds to failing to load a DLL. The tdms file is created and goes immediately missing, I found in the Recents folder I can see the tdms file is created but empty, and when I try to go to the original file location it takes me to the location but the tdms is not in there. When trying to open the file from the Recents folder I get two errors from Excel:
USI encountered an exception: TDS Exception in Initialize: Tds Error: TdsErrFileNotFound(7):
USI encountered an exception: (208): Error while loading model <filename> (TDMS), code: 80
What I don't understand is the executable for the application is built statically so what could cause the dll loading to fail? And if the application is working on other devices without this issue what else could cause this? All PCs are windows 10 and up to date.
Thanks,
Crystal
Solved! Go to Solution.
07-12-2023 03:42 AM - edited 07-12-2023 03:45 AM
Seems like NI TDMS isn’t or not correctly installed on that PC. NI TDMS is not a standard Windows component so you can update your PC in Windows Update as much as you like but it will not help to get NI TDMS (correctly) onto it.
Did you create a full installer for your CVI application and making sure to include installation support for TDMs to that installer?
A static executable does not mean that it contains all the support libraries statically but that it includes the C runtime library statically.
07-12-2023 07:03 AM
Hi Rolf,
Thank you for the solution it worked! I initially only tried adding the header/dll files into the directory of the executable which didn't work so the full installation did.
Thanks for explaining about what the static executable meant, when the program was built the cmake included the path to the cvitdms.h and library so I assumed it would have built that into the executable as other libraries had been.