Chilkat for LabVIEW
use the Chilkat .NET assembly from LabVIEW's built-in .NET nodes
LabVIEW for Windows, 32-bit or 64-bit · LabVIEW 2013 or later · uses the Chilkat .NET assembly for the .NET Framework 4.8 (requires .NET Framework 4.8 on the machine)
There is no separate LabVIEW package to install. LabVIEW for Windows can call .NET Framework assemblies
directly through its .NET nodes, so the
standard Chilkat .NET assembly (ChilkatDotNet48.dll) gives you the complete Chilkat API inside
LabVIEW: HTTP/REST, JSON, email, FTP, SFTP/SSH, Zip, PDF, digital signatures, encryption, and everything else.
You create a Chilkat object with a Constructor Node, call its methods with an Invoke Node, and
get or set its properties with a Property Node. When you click an Invoke or Property Node, LabVIEW lists
every method or property of that Chilkat class, so the whole API is available from the dropdown.
The 60-second version
- Find out whether your LabVIEW is 32-bit or 64-bit (see below) and download the matching Chilkat .NET 4.8 assembly.
- Unzip it and copy
ChilkatDotNet48.dllinto your LabVIEW project's folder. - On a block diagram, drop a Constructor Node, browse to
ChilkatDotNet48.dll, and pick a Chilkat class. Then right-click the reference it outputs and choose Create » Method or Create » Property.
The walkthrough below builds a complete VI step by step.
First: match LabVIEW's bitness
The Chilkat DLL's bitness must match LabVIEW's bitness, not Windows'. The Chilkat .NET assembly is a mixed-mode assembly: it has a managed .NET API, but the core inside it is native code. A 32-bit process can only load the 32-bit (win32) DLL, and a 64-bit process can only load the 64-bit (x64) DLL. Many LabVIEW installations are 32-bit even on 64-bit Windows, because some NI toolkits and drivers were 32-bit only. If you load the wrong DLL, LabVIEW shows Error 1386 ("The specified .NET class is not available in LabVIEW") or an "incorrect format" error.
To check which LabVIEW you have, use any of these:
- : the 64-bit edition says "64-bit" on the About screen.
- The install folder: 32-bit LabVIEW installs under
C:\Program Files (x86)\National Instruments\, and 64-bit underC:\Program Files\National Instruments\. - Windows Task Manager: a 32-bit LabVIEW shows as
LabVIEW.exe (32 bit).
Download
Download the 64-bit build for 64-bit LabVIEW and the 32-bit build for 32-bit LabVIEW. These are the full-version downloads, and they are fully functional for a 30-day evaluation. Other .NET Framework versions and the NuGet packages are on the Chilkat .NET download page. For LabVIEW, the 4.8 build above is the one to use.
.zip, choose Properties, and if the
dialog shows an Unblock checkbox, check it and click OK. Otherwise Windows marks every extracted file
as "downloaded from the Internet", and the .NET runtime inside LabVIEW can refuse to load a marked assembly
(see Troubleshooting).
Walkthrough: unlock Chilkat and fetch a URL
This walkthrough builds a VI that does the same thing as these few lines of C#:
Chilkat.Global glob = new Chilkat.Global();
bool success = glob.UnlockBundle("Anything for 30-day trial");
if (!success) { /* show glob.LastErrorText */ }
Chilkat.Http http = new Chilkat.Http();
string s = http.QuickGetStr("https://www.chilkatsoft.com/helloworld.txt");
if (!http.LastMethodSuccess) { /* show http.LastErrorText */ }
Every Chilkat operation in LabVIEW follows the same pattern: construct an object, call methods and properties on its reference, then close the reference.
- Create a project and put the DLL beside it. Choose and save the
.lvprojin a new folder. CopyChilkatDotNet48.dllinto that folder (a subfolder also works). When a VI belongs to a project, LabVIEW looks for .NET assemblies in the project's folder and its subfolders. In the Project Explorer, right-click My Computer and choose , then open its block diagram (Ctrl+E). - Create a
Chilkat.Globalobject with a Constructor Node. From the Functions palette, choose and place it on the diagram. The Select .NET Constructor dialog opens:- Click Browse… next to Assembly and select
ChilkatDotNet48.dllin your project folder. - Under Objects, expand Chilkat and select Global.
- Under Constructors, select Global() and click OK.
Chilkat.Globalreference. - Click Browse… next to Assembly and select
- Call
UnlockBundlewith an Invoke Node. Right-click the Constructor Node's reference output and choose . LabVIEW places an Invoke Node that is already wired to the reference. This right-click menu is how you reach any method or property of any Chilkat class. Right-click the Invoke Node'sbundleUnlockCodeinput, choose , and type your unlock code. For the 30-day trial, any string works. - Check the result.
UnlockBundlereturns a Boolean. Wire it to a Case Structure. In the False case, add a Property Node forLastErrorText: right-click the Invoke Node's reference output, choose , and wire it to a string indicator.LastErrorTextexplains exactly what went wrong. - Create a
Chilkat.Httpobject and callQuickGetStr. Place a second Constructor Node, and select Chilkat » Http » Http() in the same way as step 2 (the assembly is already in the list now). Right-click its reference output and choose . Create a string constant for theurlinput,https://www.chilkatsoft.com/helloworld.txt, and right-click the return value and choose to show the response. - Check the HTTP result. Methods that return a string or an object don't return a success Boolean. Use
the object's
LastMethodSuccessproperty instead. Add a Property Node on the Http reference, after the Invoke Node. Right-click the Property Node and choose Add Element (or drag its bottom edge down) so that one node reads bothLastMethodSuccessandLastErrorText. - Wire the error clusters and close the references. Wire error out of each node to error in of the next, starting at the Global Constructor Node, running through the Http nodes, and finishing at the Close Reference nodes described next. LabVIEW runs nodes in dataflow order, so this error-wire chain is what makes the unlock run before the HTTP request. At the end, wire each reference to a Close Reference node (), and wire the final error out to an error indicator.
- Run it. Switch to the front panel (Ctrl+E) and click Run. The response indicator shows
Hello World!.
The finished block diagram, node by node
Reading left to right along the error wire, the finished diagram contains these nodes:
| # | Node | Configured as | Wired to |
|---|---|---|---|
| 1 | Constructor Node | Chilkat.Global() | Reference → node 2 |
| 2 | Invoke Node | UnlockBundle, with a string constant on bundleUnlockCode |
Boolean return → Case Structure (node 3); reference → node 3 and node 8 |
| 3 | Case Structure | False case holds a Property Node reading LastErrorText |
LastErrorText → string indicator |
| 4 | Constructor Node | Chilkat.Http() | Reference → node 5 |
| 5 | Invoke Node | QuickGetStr, with a string constant on url |
String return → Response indicator; reference → node 6 |
| 6 | Property Node | Reads LastMethodSuccess and LastErrorText |
Boolean and string indicators; reference → node 7 |
| 7 | Close Reference | Closes the Http reference | |
| 8 | Close Reference | Closes the Global reference; error out → error indicator |
A single error wire runs through nodes 1, 2, 4, 5, 6, 7, and 8 in that order, which guarantees that the unlock completes before the HTTP request starts.
UnlockBundle sets a flag in memory that lasts for the life of the
process. There is no license file, and it doesn't contact a server. In the LabVIEW development environment, the
process is LabVIEW.exe, so after the first unlock Chilkat stays unlocked until LabVIEW closes. In a
built application, call UnlockBundle once at startup, for example in the first frame of your main
VI.
Working with the Chilkat API in LabVIEW
| In C# you'd write… | In LabVIEW you use… |
|---|---|
new Chilkat.Http() | A Constructor Node (Chilkat » Http » Http()). |
http.QuickGetStr(url) | An Invoke Node. Right-click the reference, then choose Create » Method for Chilkat.Http Class. |
http.ConnectTimeout = 10 or x = http.LastErrorText | A Property Node. Right-click an element and choose Change To Write or Change To Read. One Property Node can read or write several properties. |
A method that takes a Chilkat object, e.g. http.HttpReq(url, req, resp) | Create the
HttpRequest and HttpResponse objects with their own Constructor Nodes and wire their
references into the Invoke Node's inputs. |
| Disposal / end of scope | Close Reference on each reference when you're done with it. |
The Chilkat reference documentation and examples for C# apply directly: the class, method, and property names
are the same in LabVIEW. Chilkat methods don't throw exceptions for ordinary failures. They return
false (or set LastMethodSuccess to false), and LastErrorText
explains why. That means the LabVIEW error wire stays clean even when a Chilkat operation fails, so check the
return value or LastMethodSuccess as shown in the walkthrough.
Chilkat's progress events (PercentDone, AbortCheck, ProgressInfo, and
others) can be handled with LabVIEW's Register Event Callback node from the .NET palette. Most LabVIEW
applications don't need them. Call the methods synchronously, and set a timeout property such as
ConnectTimeout or ReadTimeout where the class has one.
Deploying a built application
When you build an executable with the Application Builder, LabVIEW includes ChilkatDotNet48.dll as
a dependency and copies it into the build output (by default into the data folder next to the
EXE). After a build, check that the DLL is there. On the target machine:
| Requirement | Notes |
|---|---|
| Same bitness | A built LabVIEW application has the same bitness as the LabVIEW that built it, so ship the Chilkat DLL you developed with. |
| .NET Framework 4.8 | Included with Windows 10 (version 1903 and later) and Windows 11. On older Windows versions, install it from Microsoft. |
| Visual C++ runtime | The Chilkat .NET 4.8 assembly needs the Microsoft Visual C++ v14 Redistributable (the one that covers Visual Studio 2017 and later) in the same bitness as your application: x64 for 64-bit, x86 for 32-bit. Development machines usually have it already. On target machines, install the latest supported version from Microsoft's VC++ Redistributable downloads. |
| LabVIEW Run-Time Engine | As for any LabVIEW application. |
Troubleshooting
Error 1386: "The specified .NET class is not available in LabVIEW"
The Chilkat DLL could not be loaded. The most common cause is a bitness mismatch, such as the x64 DLL in a 32-bit LabVIEW. See Match LabVIEW's bitness. If the bitness is correct, work through the other causes in the next item: a missing Visual C++ runtime, a DLL that Windows has blocked or that is on a network share, or a missing .NET Framework 4.8.
"Could not load file or assembly 'ChilkatDotNet48' or one of its dependencies"
- "An attempt was made to load a program with an incorrect format": the DLL's bitness doesn't match LabVIEW's. Use the other download.
- "The specified module could not be found": the Visual C++ v14 runtime of the same bitness isn't installed. Install it (see Deploying).
- "Operation is not supported" (HRESULT 0x80131515): .NET treats the DLL as coming from a remote source. This happens when the DLL is marked as downloaded from the Internet or is loaded from a network share. Right-click the DLL, choose Properties, check Unblock, then restart LabVIEW. Keep the DLL on a local drive.
The Constructor dialog can't find the Chilkat classes
Make sure the VI is saved inside a LabVIEW project and ChilkatDotNet48.dll is in the project's
folder or a subfolder. A VI that isn't in a project looks for private assemblies next to LabVIEW.exe
instead, which is not a good place for them.
Updating to a new Chilkat version
After LabVIEW loads a .NET assembly, it keeps the file locked until LabVIEW exits. To update, close
LabVIEW, replace ChilkatDotNet48.dll with the new version, and reopen the project.
Other options
.NET 8. LabVIEW 2025 Q1 and later can also load .NET 8 assemblies through a separate Select .NET Core Constructor option on the Constructor Node. That support is newer, NI documents features it does not yet cover, and NI is still extending it in each release. The Chilkat .NET 8 package (ChilkatDnCore) is distributed through NuGet. For LabVIEW we recommend the .NET Framework 4.8 assembly on this page: LabVIEW's .NET Framework support is mature, it works in every LabVIEW version from 2013 on (with .NET Framework 4.8 installed), and it's a single DLL.
ActiveX. LabVIEW can also use the Chilkat ActiveX through its
ActiveX Automation Open, Invoke, and Property nodes. The .NET assembly is simpler because it doesn't need
registration with regsvr32. The same bitness rule applies.
Documentation & Next Steps
- 📖 Chilkat .NET (C#) Reference Documentation — class, method, and property names are the same in LabVIEW
- 💻 Chilkat C# Sample Code — each example maps line-for-line to Constructor, Invoke, and Property nodes
- 📦 All Chilkat .NET downloads
- ✉ Contact Chilkat support
LabVIEW, CompactRIO, and PXI are trademarks of National Instruments Corporation.