Files
PS_Dinkey/Dinkey Pro 7.6.1/Samples/LabVIEW
2026-05-06 07:47:36 +02:00
..
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00
2026-05-06 07:47:36 +02:00

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Using Dinkey Pro/FD with LabVIEW</title>
    <style>
        body {
            color: black;
            font-family: Verdana, Arial, Helvetica, sans-serif;
            font-size: 13px;
            margin: 25px auto;
            max-width: 800px;
        }
        p, ul, ol, table {
            margin-top: 0;
            margin-bottom: 15px;
        }
        ul.contents a {
            text-decoration: none;
        }
        h1,h2,h3,h4,h5,h6 {
            margin-top: 25px;
            margin-bottom: 15px;
        }
        h2 {
            border-top: 1px solid gray;
        }
        table {
            margin-left: auto;
            margin-right: auto;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid black;
            padding: 0.5em;
            text-align: left;
        }
        .ui_element
        {   /* Use for things like program options and menu items */
            color: #008000;
            font-style: italic;
        }
        .filepath
        {   /* Use for paths and filenames */
            font-family: monospace;
            font-size: 13px;
            font-weight: bold;
        }
        .manual
        {   /* Use when referring to user manual sections/chapters */
            font-style: italic;
        }
        .alert
        {
            border: 1px solid black;
            padding: 15px 15px 15px 58px;
            font-weight: bold;
            background-repeat: no-repeat;
            background-position: 5px 15px;
            margin-bottom: 15px;
        }
        .important
        {
            background-color: #FFFDD0;
            background-image: url('data:image/png;base64,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');
        }
        .information
        {
            background-color: #EBF8FF;
            background-image: url('data:image/png;base64,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');
        }
        .alert > p:last-child, .alert > ul:last-child, .alert > ol:last-child
        {
            /* Cancel double space at bottom of alert caused by above rule */
            margin-bottom: 0;
        }
        .important .filepath, .information .filepath {
            /* Make filepaths stand out in sections that are already bold */
            font-weight: normal;
        }
        div.col_wrapper
        {
            clear: both;
            overflow: hidden;
        }
        div.two_col
        {
            width: 50%;
            float: left;
        }
        code {
            color: gray;
            white-space: nowrap;
        }
        pre {
            padding: 15px;
            background-color: #EEEEEE;
        }
        pre > code {            /* Block level code snippets */
            white-space: pre;   /* Override nowrap used for inline code */
            color: inherit;
        }
        code .comment
        {
            color: green;
        }
        code .keyword
        {
            font-weight: bold;
            color: blue;
        }
        code .string
        {
            color: #A00000;
        }
        code .constant
        {
            font-weight: bold;
        }
    </style>
</head>
<body>
    <h1>Using Dinkey Pro/FD with LabVIEW</h1>
    <div class="alert information">
        <p>
            The Shell protection method supports Windows executables (stand-alone applications) produced by the LabVIEW Application Builder.
        </p>
        <p>
            API protection checks in LabVIEW are implemented using the Virtual Instruments <span class="filepath">dp32.vi</span> and <span class="filepath">dp64.vi</span>
            to communicate with the dongle via the appropriate shared library
            (<span class="filepath">dpwin32.dll</span> on 32-bit Windows, <span class="filepath">dplin64.so</span> on 64-bit Linux, etc.).
            You should lock these shared libraries with the API method using DinkeyAdd as described in the user manual, and distribute the locked libraries with your software.
        </p>
    </div>
    <p>
        Using the Dinkey Pro/FD API in LabVIEW is very similar to using the API with text-based programming languages.
        See <span class="manual">Modifying Your Code</span> in the user manual for information on using the API.
    </p>
    <p>
        In LabVIEW, the <code>DRIS</code> is a cluster with some slight differences to the <code>DRIS</code>
        documented in <span class="manual">Structures &gt; DRIS Structure</span> in the user manual.
        These differences are:
    </p>
    <ul>
        <li>
            The fields <code>header</code> and <code>size</code> are set automatically by the dp32 and dp64 VIs.
            You do not need to set these fields in your code.
        </li>
        <li>
            <code>rw_data_ptr</code> is replaced by <code>rw_data</code>.
            This field is an array of bytes representing the actual data passed to/received from the dongle (rather than a pointer to it).
            Internally, the array is converted to a cluster. Because LabVIEW limits the number of elements in cluster to 256,
            the maximum size of data that can be passed to/from the dongle in a single protection check is 256 bytes.
            You must set the <code>USE_FUNCTION_ARGUMENT</code> flag when using this field.
        </li>
    </ul>
    <p>
        In the user manual, possible values for the <code>function</code> and <code>flags</code> fields are referred to by the
        symbolic names used in other programming languages. Their literal values are provided here for your reference:
    </p>
    <div class="col_wrapper">
        <div class="two_col">
            <table>
                <tr>
                    <th>Function</th><th>Value</th>
                </tr>
                <tr>
                    <td>PROTECTION_CHECK</td><td>1</td>
                </tr>
                <tr>
                    <td>EXECUTE_ALGORITHM</td><td>2</td>
                </tr>
                <tr>
                    <td>WRITE_DATA_AREA</td><td>3</td>
                </tr>
                <tr>
                    <td>READ_DATA_AREA</td><td>4</td>
                </tr>
                <tr>
                    <td>ENCRYPT_USER_DATA</td><td>5</td>
                </tr>
                <tr>
                    <td>DECRYPT_USER_DATA</td><td>6</td>
                </tr>
                <tr>
                    <td>FAST_PRESENCE_CHECK</td><td>7</td>
                </tr>
                <tr>
                    <td>STOP_NET_USER</td><td>8</td>
                </tr>
            </table>
        </div>
        <div class="two_col">
            <table>
                <tr>
                    <th>Flag</th><th>Value</th>
                </tr>
                <tr>
                    <td>DEC_ONE_EXEC</td><td>1</td>
                </tr>
                <tr>
                    <td>DEC_MANY_EXECS</td><td>2</td>
                </tr>
                <tr>
                    <td>START_NET_USER</td><td>4</td>
                </tr>
                <tr>
                    <td>USE_FUNCTION_ARGUMENT</td><td>16</td>
                </tr>
                <tr>
                    <td>CHECK_LOCAL_FIRST</td><td>32</td>
                </tr>
                <tr>
                    <td>CHECK_NETWORK_FIRST</td><td>64</td>
                </tr>
                <tr>
                    <td>USE_ALT_LICENCE_NAME</td><td>128</td>
                </tr>
                <tr>
                    <td>DONT_SET_MAXDAYS_EXPIRY</td><td>256</td>
                </tr>
                <tr>
                    <td>MATCH_DONGLE_NUMBER</td><td>512</td>
                </tr>
                <tr>
                    <td>DONT_RETURN_FD_DRIVE</td><td>1024</td>
                </tr>
            </table>
        </div>
    </div>
    <p>
        The VIs also have a <code>Path</code> input that must be used to specify the path to the locked API library.
        See the LabVIEW documentation for the Call Library Function Node for more information on specifying paths to shared libraries.
    </p>
    <p>
        The dp32 and dp64 VIs do not support DRIS encryption or user data encryption/decryption.
    </p>

    <div class="alert important">
        <p>
            Before you distribute your application, you must protect it from modification.
            In general, it is best to use the LabVIEW Application Builder to create a standalone application that can be run outside of LabVIEW.
            If you are distributing your LabVIEW code as a module to be used in other LabVIEW VIs,
            don't forget to remove the block diagram from the VI so that end users cannot modify the code!
            For more information on this, see the LabVIEW documentation.
        </p>
    </div>

    <h2>LabVIEW Example Files</h2>
    <ul>
        <li><span class="filepath">dp32.vi</span> - a VI that provides a 32-bit LabVIEW interface to the Dinkey Pro/FD API.</li>
        <li><span class="filepath">dp64.vi</span> - a VI that provides a 64-bit LabVIEW interface to the Dinkey Pro/FD API.</li>
        <li><span class="filepath">sample.vi</span> - a simple example of using <span class="filepath">dp32.vi</span>.</li>
    </ul>

    <h2>Supported Versions</h2>
    <p>
        The LabVIEW sample code provided with the Dinkey Pro/FD SDK was written using LabVIEW 8.5 for Windows,
        and tested using LabVIEW 8.5 on 32-bit Windows and LabVIEW 2018 on 64-bit Windows.
        All newer versions should be backwards compatible. The sample code may also work with older versions,
        but no guarantees can be made, and support for older versions is likely to be very limited.
    </p>
    <p>
        The sample code should also work without modification on macOS and Linux.
        If you have problems calling our API from LabVIEW on macOS or Linux,
        please contact us with full details of the platform and LabVIEW version that you are using.
    </p>

    <h2>Try It Yourself</h2>
    <div class="alert important">
        <p>
            The sample code is designed to teach you how to use the Dinkey Pro/FD API in LabVIEW programs.
            Experiment with the sample code to understand how the API works,
            and read the chapter <span class="manual">Increasing Your Protection</span> in the user manual for many suggestions on how to
            make the best use of the API features.
        </p>
    </div>
    <p>
        <span class="filepath">sample.vi</span> gives a simple example of using the dp32 VI to perform a protection check.
        If you are using 64-bit LabVIEW, replace dp32 with the dp64 VI.
        The VI calls the API and checks that the return code is 0 and that the SDSN of the dongle is 10101 (i.e. a demo dongle),
        turning on the LED indicator if both are correct.
    </p>
    <p>
        Controls and indicators for the other input and output variables are included to allow you to experiment with other dongle features.
        It is strongly recommended that you use these other features to improve the security of the dongle protection.
        See the chapter <span class="manual">Increasing Your Protection</span> in the user manual for many suggestions on how to do this.
    </p>
    <p>
        To run <span class="filepath">sample.vi</span> you will first need to use DinkeyAdd to produce a locked copy of the shared library for your platform,
        and program a dongle (if you are using Plus or Net dongles).
        Set the value of the <span class="ui_element">Path</span> control to the location of the locked library.
    </p>
</body>
</html>