LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to find where a dll is used

Solved!
Go to solution

There is a dll listed in the dependencies section of my project that I know is not being used any more. I right clicked on the dll to have it find the caller. It says it's being used in one VI. In that VI I checked all over and made sure that my new dll (new name and different location) is being referenced. I've rebooted to try to clear any open references to the old dll. The reference to the dll persists. If I change the name of the old dll the project says the name of the dll changed, but the VI still looks for it, yet the VI is not broken.

 

Is there any way to find out exactly where LabVIEW thinks this dll is being referenced? It's driving me nuts.

 

George

0 Kudos
Message 1 of 7
(5,804 Views)
You can use the Find tool to search for a text string.  Open your top level vi and launch the find tool (Ctrl-F on Windows, or Edit->Find), select "Text" and then type in the name of your dll file
0 Kudos
Message 2 of 7
(5,789 Views)

That didn't work. It came up empty. I had it search all VIs in memory and had the front panel and block diagram options checked which should have pretty well covered everything. I know I had the name spelled correctly because I copied it from Windows Explorer. I think it probably can't search into a .NET constructor node which is where this dll is used. I also tried it with another dll that I know for sure is being used in a .NET constructor node and it couldn't find that either.

 

I also tried it with another dll that is being used in a Call Library Function Node and that worked. Any other ideas?

 

George

0 Kudos
Message 3 of 7
(5,768 Views)

Hi George,

 

Have you tried right-clicking the dll in the dependency and clicking Why is this in Dependencies?  Does this find that same VI which used to include the dll?  If it does and you've eliminated all references to the dll, it might have been included in the project file and never removed.  Could you post your project file?

Jared S.
Applications Engineering
National Instruments
0 Kudos
Message 4 of 7
(5,751 Views)

>>Have you tried right-clicking the dll in the dependency and clicking Why is this in Dependencies?  

>>Does this find that same VI which used to include the dll?

 

Yes to both questions.

 

I've attached my project. The offending dll is FunctioPointerProxy.dll.

 

If I rename the bad dll, then reload the project and start my VI I get a dialog asking me where to find the dll. So I think there must be a reference somewhere in the VI.

 

My VI includes a callback VI. I've also made sure there's no references to the dll in there. Is there any way though there could be some kind of tie in to the old dll there? Callback VIs seem to be a slightly different beast.

 

George

0 Kudos
Message 5 of 7
(5,731 Views)
Solution
Accepted by topic author GS

Hi George,

 

It looks like the DLL is listed in the project itself as a dependency.  If you try to load the VI without loading the project, do you still get this problem?  Also, can you try copying the block diagram of the VI to a new blank VI and see if that VI has the problem? 

Jared S.
Applications Engineering
National Instruments
Message 6 of 7
(5,695 Views)

If I load the VI without loading the project it loads fine (no broken arrow, doesn't ask for the problem dll). However, every time I load the VI it has a "*" by the VI indicating that it changed even though I save it every time. The "Explain changes" dialog says the the VI was recompiled. I've never seen that before.

 

No for the good news. I copied the block diagram to a blank VI and that fixed it. I wish I could remember that trick - I forget about it every time. 

 

Anyway, thanks for hanging in there and helping me fix this. It was making me crazy.

 

George

0 Kudos
Message 7 of 7
(5,676 Views)