03-30-2017 12:49 PM
Hey All,
A compiled LabVIEW executable that has been working for years stopped working this morning, throwing an Error 3, unable to find functions within a DLL. The DLL exists within the "data" folder of the folder containing the executable. The DLL is from Sorensen, contains calls to operate a power supply that is connected and turned on.
My understanding is that the LabVIEW executable looks within the folder it is running from, then the System32 folder. As the DLL is in the folder the executable is running from, I don't understand why the error 3 is occurring. I've replaced the DLL with a fresh copy and I've replaced the executable with a fresh copy without any luck.
The executable has worked for two years without any problems until today. Why can't the executable find the DLL in its directory? Any ideas?
Thanks,
-Drewski
03-30-2017 01:41 PM
That's why I turn off Windows automatic updates. You never know when something that is fixed one minute will be broken in the next. This is an assumption but I'm willing to bet that it's a pretty good assumption.
03-30-2017 02:54 PM
Hey All, Update with some activities. The executable is finding the DLL. I added a z to the name of the DLL and a different error message appeared asking for the location of the DLL.
So the whole "can't find the DLL" is not the actual cause of the Error 3.
The DLL is found and the vi is failing to load "Could not load front panel."
end of update.
03-30-2017 06:13 PM
Hey All, Update: Adding the vi's associated with the DLL to a new vi block diagram gives an "Invalid memory access error".
This now occurs on two out of two Windows 7 machines tested on the network.
This now occurs with a LabVIEW 10 executable from 2014 and a LabVIEW executable from 2016.
End of update.
03-30-2017 06:46 PM - edited 03-30-2017 06:46 PM
I am confused.
If LabVIEW can not load VI, it usually means some component is missing, for example sub-dll (DLL called by main dll that should be in that folder or in drivers folder of the instrument). It happens if main DLL path is specified directly in Call library node (and modified by executable builder).
If LabVIEW shows error message handling dialog with specific error code, it means VI with subcomponents have been loaded, but performed some bad operation. For example dynamic loading of dll (path specified on block diagram). I am not confused.
Is it possible sub-dll is missing (driver uninstalled/updated/killed by antivirus/forbid access without admin rights)? Verify all files that should be in data folder or next to dll are still there
03-31-2017 11:24 AM
Thanks for the response. I'm looking into a sub-dll missing now.
04-04-2017 11:00 AM
Hey All, IT built a new computer with a vanilla Win 7 OS to run the executable and the LabVIEW software worked as expected. All the Win 7 patches and Symantic Endpoint Protection policies were slowly added back to the operating system and the LabVIEW software continues to load and run without errors. Root cause is unknown and may never be known I'm sad to say. IT did not install dependency walker, the only tool available was proc mon, and IT wasn't able to determine a root cause from running proc mon.
Thanks for the help.
-Drewski