LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DLL is missing from your computer

Solved!
Go to solution

Hello.

 

I have a project that was generated from the Import Shared Library Wizard.  The C++ project (which I did not write) has dependencies (OpenCV dll's).  When I try to run one of the VI's I get an error that says "opencv_core245d.dll is missing from your computer.  Try reinstalling ... " 

 

So, I do have that DLL.  Where do I need to put it so that LabVIEW knows it exists?  I tried Windows/System32 to no avail.

0 Kudos
Message 1 of 11
(6,620 Views)

Even when I include the specific folder that has the DLL in it, it still can't find it.

0 Kudos
Message 2 of 11
(6,596 Views)

Is it your C++ program who is needing this dll or is it LabVIEW that is directly calling this dll?

 

If it is this C++ program that is using this dll, then you should ask how ever has made that program, where the opencv dll should be stored.

Message 3 of 11
(6,593 Views)

Putting it in the same directory as the C++ developer had it in was ineffective.

0 Kudos
Message 4 of 11
(6,588 Views)

That was not what I was asking about.

 

If it is the C++ porgam that needs the dll, then ask the developer how the C++ program is calling this dll.
Does he use a relative path, or and absolute path ?

Message 5 of 11
(6,585 Views)

The "d" before the ".dll" in "opencv_core245d.dll" leads me to believe that it was compiled for debugging. 

 

Try building this library for release (aka "opencv_core245.dll"). 

 

Or, for debugging builds in general, check the linker settings to ensure you include the dll:

 

Linker -> Input -> Additional Dependencies...

 

Then add:

 

opencv_core245d.dll;

 

Lastly don't forget:

 

Linker -> General ... Set 'Use Library Dependency Inputs' to 'Yes'

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

EDIT:

 

Another thing to try is adding "C:\OpenCV2.0\bin" to your environment paths for windows 7 and restarting your computer.

 

*Note:  This path needs to lead to the .dll's folder.  If you copied the OpenCV dll's elsewhere, then link to that path.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If someone helped you out, please select their post as the solution and/or give them Kudos!
Message 6 of 11
(6,571 Views)

Yes, for debugging.

 

Do you have any reason to believe that building it as a release would be more effective?

 

I tried adding the path but that didn't do it.

 

I have asked the C++ developer about the Use Library Dependency Inputs.

 

Thanks for the help thus far and I will let you know of updates.

0 Kudos
Message 7 of 11
(6,552 Views)

I checked the Import Shared Library Report, got this:

 

VI Not Executable
The VI is not executable because of one of the following reasons:
1. The shared library or a dependent file is not installed. To make the VI executable, you must install the shared library and all support files on the computer on which you run the VI.
2. A required custom control might be empty or cannot be found. To make the VI executable, update the custom control manually.
3. The VI contains a parameter with an unsupported data type. To make the VI executable, you must replace the empty cluster that the wizard generates with a control or indicator that uses supported data types.
    fn Labview DLL Test.vi
    test Echo.vi
    test Open CV.vi

0 Kudos
Message 8 of 11
(6,548 Views)

So I was able to get his functions to run... But I think I found a LabView glitch.

 

After the library was built, I went into the Call Library Function Node and clicked on the arrow for "Function name".  Even though it was already set correctly, by choosing the Function name that associates with the VI (clicking on the name that was already highlighted...) the VI is suddenly executable. 

 

Any feedback on why this happened would be great.

0 Kudos
Message 9 of 11
(6,542 Views)
Solution
Accepted by topic author asdlkfjalskdjf

What did you do to get the DLL working?  -- In case someone encounters a similar issue.

Also, I cant test this right now cause I am on a Mac, but if I recall you need to set the DLL and a function before the Call Library Function Node will be runnable.  So perhaps it selected the first (or only?) function name by default after your entered the DLL into the Call Library Function Node, but required you to confirm a function before proceeding.  Often you need to change the parameters or return value anyhow, so perhaps that's also required (viewing the tab and verifying the default Voids are okay).

Is this an issue at all?  Or were you just confused by the way it happened?

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

EDIT:

 

As long as you can follow steps similar to this guide below, you should be in business.  As to why it wasn't runnable before completing all these steps, that I am unable to answer since I have only used them a few times:

 

https://decibel.ni.com/content/docs/DOC-9069

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If someone helped you out, please select their post as the solution and/or give them Kudos!
Message 10 of 11
(6,535 Views)