LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How can I provide VIs similar to a .dll?

Hello all,
 
I am wondering how I can convert a VI into something that is .dll-like?  We wish to provide a customer with some LabView source code, but we do not wish to allow them to view/edit/modify any of the sub-VI's within the source code.  We wish to essentially have them be a library function - that is, they can use the VI, but they can't view the front panel, wiring diagram, or certainly modify anything.  I had heard that libraries are going "out of style" for recommended programming, and from what I understand, they don't hide the inside of the VI's anyway.
 
Thanks,
 
Jason
0 Kudos
Message 1 of 7
(3,389 Views)
Instead of ".dll-like", you can create an actual .dllSmiley Wink. The application builder does that. If you don't have the professional version of LabVIEW, the app builder can be ordered separately. If you did decide to go with distributing an LLB, you can't hide the front panels of any VI in it but you can certainly protect them from modification or diagram viewing by simply setting a password in VI Properties>Security. Another way to prevent the viewing of a diagram is to save the VIs without their diagrams but I personally hate it when a vendor does it. Without a diagram, the VIs cannot be converted to a newer version of LabVIEW.
Message 2 of 7
(3,381 Views)

Hi Dennis,

That sounds like it might work, but rather than an actual .dll, I want something that can be placed into a LabView wiring diagram, just as if it were a regular VI.  We don't want to password protect the VI because that would be too "obvious."  We just wish to release a "compiled" VI.

Jason

0 Kudos
Message 3 of 7
(3,379 Views)
I have no idea what you mean by obvious but if you want the end-user to be able to insert a VI with an icon and not use the call library node, then create a wrapper VI around a call library node for a DLL you create. The user could open the front panel and view the diagram but couldn't do anything else. The only possible modifications the user could make would simply make the wrapper VI unusable. Look at any of the low level DAQ or analysis functions in LabVIEW (i.e. Mean).
0 Kudos
Message 4 of 7
(3,370 Views)
Hi,
       I am trying to create dll from Labview VI to be used in VB.NET. How do I get about doing this . Any examples? I tried to do it but gets the error 1 message
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
LabVIEW:  An input parameter is invalid.
---
NI-488:  Command requires GPIB Controller to be Controller in Charge.
---
Application Builder:  You must export at least one VI.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

I find the user manual not particularly useful for information on how to create a dll.

Please help.
0 Kudos
Message 5 of 7
(3,356 Views)
Hello Jason,

other option to hide your "programming stuff" is to save it as application distribution (without diagram)...
But be aware of possible problems: don't overwrite your original vi's (!!!). You also have to give out new versions to the user after upgrading LabView as he cannot compile the vi to the new version.

Why not use password protection? The developer has control over it's work, the user can't change it...

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 6 of 7
(3,347 Views)

You should have created a new thread. It gets confusing when someone posts a completely different question on an existing thread.

But, to answer your question, it sounds like you didn't do all of the steps detailed in the on-line help topic called Building a Shared Library. After you select Shared Library on the Target tab, go to the Source Files tab and click the Add Exported VI button to select which VI you want to turn into a DLL. You then have to define the prototype (inputs/outputs/datatypes). You can do this for multiple VIs so that the DLL can have multiple function calls. When done, try building it again.

0 Kudos
Message 7 of 7
(3,325 Views)