C/C++, Dev-C for UD - Windows | LabJack
« Close

Datasheets and User Guides

App Notes

Software & Driver


C/C++, Dev-C for UD - Windows

Basic example for Dev-C++ (with Mingw port of GCC, bloodshed.net) and the LabJackUD driver. The Windows UD library is the high-level Windows library/driver for the LabJack U3, U6 and UE9. For other LabJack devices, go to the Software page.

Demonstrates run-time dynamic linking where the UD library is loaded during application run-time instead of load-time. This type of linking is supported in many Windows C compilers including Borland, and is an alternative to using static linking (load-time dynamic linking) with the LabJackUD.lib file as demonstrated in the Visual C/C++ examples.


UD Examples Overview (Referencable)

UD Library Overview

First read the general overview of the UD library:


The UD driver has a handful of functions, many with the same 4 to 6 parameters.


The main functions are used to build a list of requests (Add), execute the list (Go), and read the result of each request (Get).  Some functions (e.g. eGet) combine a single add/go/get into one function call.


The parameters are described at the bottom of the Overview page.  The meaning of each parameter should be apparent (e.g. Channel is the channel number you are operating on), but when it is not the pseudocode section of the device's datasheet has the extra information needed.

  • Handle:  Always the handle.
  • IOType:  Always the IOType.
  • Channel:  If something besides a channel number the pseudocode section will tell you.
  • Value:  Always the value.
  • X1:  Usually not used, but if used the pseudocode section will tell you.
  • UserData:  Usually not used, but if used the pseudocode section will tell you.


Device specific pseudocode can be found in datasheet section 4.3:

U3: https://labjack.com/support/datasheets/u3/high-level-driver/example-pseudocode
U6: https://labjack.com/support/datasheets/u6/high-level-driver/example-pseudocode
UE9: https://labjack.com/support/datasheets/ue9/high-level-driver/example-pseudocode

File Attachment: 


The dynamic linking uses labjackud.dll (see code above) but labjackud.dll is
no part of DevC_LJUD.zip and LabJackUDSetupV315.exe .

I use a Borland C Compiler under Windows 7 (LabJackUDSetupV315.exe works fine)
but where can i found labjackud.dll Version 3.15 for dynamic linking ?

//Start of LoadLabJackUD function.
//This is the function used to dynamically load the DLL.
void LoadLabJackUD (void)
    //Now try and load the DLL.
    if (hDLLInstance = LoadLibrary("labjackud.dll"))
        //If successfully loaded, get the address of the functions.
        m_pListAll = (tListAll)::GetProcAddress(hDLLInstance,"ListAll");




The LabJackUD.dll for version 3.15 should be automatically placed in C:\windows\system32 after runing the LabJackUDSetupV315.exe installer.  That should work for dynamic linking.

We are using labjack dll file with c#.Labjack u3 can not pick up negative value ,but DAQ Factory can. If possible , could you add c# sample source code.

Low-voltage or high-voltage channel?  A single-ended low-voltage channel typically does not go negative.  See Section 2.6 for more information.  Try making a call to eAIN and see if it acts as expected.