LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How can a Type Definition .ctl file be hidden from view?

I'm making LabVIEW WinAPI calls via Call Library Function Node, to a custom, non-LabVIEW DLL, written by an outside party. Our Non-Disclosure Agreement with this party says that we must hide from view the LabVIEW code and data structures used to call this API. I've defined a Strict Type Definition cluster that contains all of the proprietary elements used by the API. Of course, I can password protect the diagram of any VI making API calls, and can easily hide the type def controls and/or indicators on the VI front panel. Now, the question: How do I prevent code users from loading and viewing the front panel of the type def control which is stored to disk as a .ctl file? I don't see any provision to passwor
d protect or hide a .ctl file from prying eyes. Any ideas would be appreciated.

Thanks,
Dean.....
0 Kudos
Message 1 of 4
(3,060 Views)
I'm afraid you are out of luck about this one...

LabVIEW has a powerful feature, the type descriptor, that closely follows the data everywhere it goes (unless you flatten it to string).

There are VI methods Get All Control Values and Get All Control Values (Variant) that retrieves data and type descriptors of all controls/indicators on a front panel. These will expose your typedefs even if they are hidden on the front panel.

The only way I can see to avoid that is to use the typedefs as constants on the diagram and when you're ready to distribute the code, disconnect the the constants from their type definition controls so it won't be needed for distribution. The LabVIEW 7 Application Builder does that automatically (typede
f disconnection) when building an application so there is a way to avoid to do that manually. If it is sufficient for your requirements, just disconnection from typedef controls before VI distribution would prevent you from distributing the typedef control VIs.

Even then, a determined hacker could look at the VI code (code on file, not the locked diagram) to identify type descriptors but I doubt the non-disclosure agreement covers for that.


LabVIEW, C'est LabVIEW

Message 2 of 4
(3,060 Views)
It looks like the only practical way to keep these data structures hidden is to use the App Builder. Thanks Jean-Pierre. That's a very thorough summary and answer to my question.

Dean
0 Kudos
Message 3 of 4
(3,060 Views)
Nice answer. Once again, hadn't thought of this.

4 Stars.

Shane.
Using LV 6.1 and 8.2.1 on W2k (SP4) and WXP (SP2)
0 Kudos
Message 4 of 4
(3,060 Views)