You could open the vi with the call to the DLL and delete the Call Library. Add a new Call Library and reconfigure it. Save your Labview vi restart labview and see if it saved the DLL location properly.If this worked then make the application an see if it works.
Have you tried replacing the dll that does not work in the orginal location with the dll that does work in the orginal dll's location.
It sound like there are multiple versions of this dll with different code. Unfortunatly they are all named the same.
I'm having some issues that came about when we had to replace an old PC. The issue is documented in the attached Microsoft Word document. Any and all help is much appreciated. Thanks!
Most likely you have another VI that references the same DLL with the old path and is loaded first in your project. When LabVIEW gets along to load your changed VI it sees that the DLL is already loaded and relinks to that one. Why the DLL would work in one place but not in the other is hard to say. It could be that it references other DLLs, or some configuration file or something located relative to itself and this file is missing in the one place that doesn't work.
I'm having this same issue with a DLL. Everytime I freshly load labview and this vi, it won't run the dll. I need to physically open the Call Library Function, click on the folder and point the DLL to the exact same location that was already listed. It will then run properly.
I've confirmed that this specific function call is the "first time run". I do not have the path set in the windows environment but will experiment doing this.
Note that when the Call Library Function does not contain an explicit path to the DLL, it relies on the OS to find it; whereas if it does have an explicit path, it looks only there.
I tried suppling a path (Specify Path on Diagram), and it still will not work correctly. If I copy the dll to the system32 directory, it works. But, this is not an option as I do not want to clutter the system32 directory with auxillary dlls.