03-06-2009 01:05 PM
Hi,
Hopefully I can ask this question correctly. I am using a LabVIEW (8.5) Call Library Function to communicate with a dll written by our software group in C++ .net. We call our dll the 'USB Test Fixture.dll'. The 'USB Test Fixture.dll' internally contains a call to a vendor's dll (CyUSB.dll) which is written in the .net format. Whenever I try to make a call to the 'USB Test Fixture.dll' I get an error log message from 'USB Test Fixture.dll' essentially stating that it cannot locate the CyUSB.dll.
I know this is a very very general scenario, but any suggestions as to what might be going on?
03-06-2009 02:16 PM
03-08-2009 05:00 AM
Hi there
Make sure the CyUSB.dll can be found in the systems search path. That is
- The folder in which the calling application is located (e.g. LabVIEW.exe or in case you compile a LabVIEW application the folder your app is located)
- The windows system32 folder
- Any of the folders contained in the PATH environment variable
You only can/need register dlls which are COM DLLs.
03-08-2009 10:26 AM
Jim77215 wrote:Hi,
Hopefully I can ask this question correctly. I am using a LabVIEW (8.5) Call Library Function to communicate with a dll written by our software group in C++ .net. We call our dll the 'USB Test Fixture.dll'. The 'USB Test Fixture.dll' internally contains a call to a vendor's dll (CyUSB.dll) which is written in the .net format. Whenever I try to make a call to the 'USB Test Fixture.dll' I get an error log message from 'USB Test Fixture.dll' essentially stating that it cannot locate the CyUSB.dll.
I know this is a very very general scenario, but any suggestions as to what might be going on?
Well, I think you are messing up something. A .Net DLL can not be called with the Call Library Node but needs to be accessed with the .Net functions in LabVIEW. Such a DLL does not export any functions normally and the Call Library Node can only access exported functions from a DLL.
So you probably have a normal DLL that then accesses a .Net DLL. .Net DLLs However are only searched by Windows in the application directory (where LabVIEW.exe is for your development environment or where your app.exe is for a built LabVIEW app) and in the Global Assembly Cache (GAC). No other directories are searched by .Net by default, in order to minimize the chance to create what is commenly called DLL hell.
Rolf Kalbermatter