Making NI-DAQmx calls from Borland Delphi is not directly supported. However, you can create a wrapper DLL to call NI-DAQmx from Delphi, but you may run into the previously mentioned problem unless you mask some exceptions that occur when passing floating point numbers. Apparently, this happens quite frequently when Borland-built applications use components built with non-Borland compilers. For example, when you try to use OpenGL from Delphi, the same type of thing will happen. Most compilers manage floating point error conditions internally under defined rules. However, a number of compilers will always unmask these exceptions in order to enable the compiler's proprietary error handling mechanisms. Borland Delphi by default exposes these errors and certain calls to DAQmx return floating point conversion errors that cause the DLL to crash. To handle these errors one must hide or mask the handful of different error cases that might be encountered. If you fail to mask the exceptions, they make their way to the operating system which will display an error message and then shut down the DLL. The InitializeFPU procedure below will mask all FPU exceptions, so you should do this before calling any DAQ function. procedure IntializeFPU; asm     finit     wait end; If your Delphi application requires that FPU exceptions be unmasked, then you can do this immediately after returning from the DAQ function. fninit wait fldcw word ptr [Default8087CW] ret NI-DAQ 7.4 and later will modify its usage of NaN (not-a-number) floating point values to prevent this error from occurring.