LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DLLs - Export of VI mandatory

I'm reading the Help entitled "Building a Shared Library (DLL)", and step 5 says, "...select the VI you want to define as an exported VI in a shared library.  You must define at least one VI to export as a function in the shared library".
 
What does this mean.  I'm not sure what I'm really 'exporting' and why.
0 Kudos
Message 1 of 14
(3,624 Views)
By exporting, you make a function available to be called in the dll. If you don't export at least one VI, there is nothing in the dll that can be called and then what would be the point?
0 Kudos
Message 2 of 14
(3,622 Views)

Duh?  I was not on the proper wave length.

Now onto a related but different topic.  In one of my other threads I asked about DLLs vs password protecting VIs (which I'm not in favor of).  In the "Distributing VIs" Help I saw the statement "If you do not want developers to edit the VIs, ... can configure VI settings to remove the block diagram source code from specified VIs."

I'm trying to remove the customer's (not our developers) ability to view/modify VIs.  Is the DLL approach still most convenient?  I haven't tried the "remove the block diagram" setting, but it doesn't seem like I can do a mass turn off before doing a "build".  Thoughts?

0 Kudos
Message 3 of 14
(3,615 Views)
I find it convenient to create a dll and distribute that but password protection is something I've done as well. With creating a dll, you have to have the correct run-time installed. With dlls that were created with multiple versions of LabVIEW, multiple run-times have to be installed and with multiple run-times engines, that can be a memory issue. I try to keep all of the dlls at the same version but it can be a lot of work to do that.
0 Kudos
Message 4 of 14
(3,609 Views)
If someone wanted to hack into a DLL, could they?  I mean with a DLL of VIs, could someone open up LabVIEW and somehow 'extract' or reverse-DLL such as to allow them to view the block diagrams?
0 Kudos
Message 5 of 14
(3,606 Views)
No. When a DLL is created, it is just like an exe. The block diagrams are removed. with an exe or dll, you now have the option a creating a debuggable version that keeps the block diagrams but if you don't choose that, then they are safe. In older versions of LabVIEW, you could rename the exe to llb and view the names of the separate VIs in the the exe but even that is not possible anymore. There have been some extended discussions here and on info-labview about the security of password protected and block diagram removed VIs. Do a search and give them a look.
0 Kudos
Message 6 of 14
(3,600 Views)
My operator interface is a customized version of the TestStand OI.  if my only reason for creating the DLL in the first place is for the security features at the target, do I need to export/expose any more VIs than those called by my sequence files?
0 Kudos
Message 7 of 14
(3,590 Views)
No, you only have to export the top level VIs that are current being called.
0 Kudos
Message 8 of 14
(3,584 Views)
I'm trying to determine the best way to setup my LabVIEW project.  I have all my HMI code, which I currently have laid out in a labview project.  Now I'm bringing in some UUT-specific software (we'll ultimately have 14 UUTs, but we're currently at five).  If I want to encapsulate the individual UUT code into their respective DLLs, can't I still have the same project file, but now I'd have 5+ Build Specifications.  The only reason I'm considering the project option is that LabVIEW 8.5 finally allows me to synchronize my actual directory structure with that of the project.  What I'm not sure, however, is if there is a 'refresh' of sorts to see when something has been added.
0 Kudos
Message 9 of 14
(3,578 Views)
Hi Mrbean,
This developer zone article should answer your question.

Yi Y.
Applications Engineer
National Instruments
http://www.ni.com/support
0 Kudos
Message 10 of 14
(3,557 Views)