LabVIEW strings are not null-terminated C-style strings. LabVIEW strings are similar to Pascal-style strings in the sense that the first four bytes contain the length of the string.
There are two ways to take a LabVIEW string and pass it to a DLL that is expecting a char * (pointer to character array). The most common method is to define the function parameter as a
CStr. When you place a Call Library Function Node on the block diagram, double-click it to specify the prototype of the function you want to call. Here you will specify the parameter to be type
String and the format to be
C String Pointer. Notice how the prototype displays the data type
CStr. This data type is equivalent to
char *.


If you are working with string-based instrument control, it may be easier to pass an array of 8-bit integers than C strings because of the possibility of NULL values in the string. When you place a Call Library Function Node, double-click it to specify the prototype of the function you want to call. The key here is to specify the parameter type as
Array and its data type as
Unsigned 8-bit Integer. The dimension of the array is
1 and the format is
Array Data Pointer. In LabVIEW you must convert the string to a byte array using the
String to Byte Array.vi.

For complete documentation on how to use LabVIEW code with other programming languages in LabVIEW 7.1 or earlier, refer to the
Using External Code in LabVIEW 2010 Help. In LabVIEW 8.0 or later, refer to the
Fundamentals»Calling Code Written in Text-Based Programming Languages book in the current
LabVIEW Help for more information.