Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

.exe built with DAQmx 17.6 does not work with earlier runtimes

Solved!
Go to solution

I know in the past updating DAQmx usually did not break backwards compatibility.  However it seems any app built with DAQmx 17.6 won't work with earlier versions of the runtime (I'm not sure if 17.6 is where the behavior was introduced, we jumped from 16.1 to 17.6).

 

To test we used this simple app (the front panel screenshot shown is the result when running the 17.6-built version on a 16.0 runtime):
SimpleDAQApp.png

 

Front panel using 17.6-built .exe on 16.0 runtime system.Front panel using 17.6-built .exe on 16.0 runtime system.

 

 

When built on a 16.0 system the app works on all of our test systems (using as early as DAQmx 9.7.5 runtime up to 17.6 runtime).  The 17.6 version does not work on any system (up to 16.1 runtime) other than those with the 17.6 runtime.  I have attached .exe versions built both on 16.0 and on 17.6 development PCs.

 

Is this the expected behavior?  We have dozens of systems in the field with earlier versions of DAQmx runtime and it isn't feasible to update all of them.  Our solution is to probably revert the DAQmx version on our build systems until this is sorted out.

 

John Passiak
0 Kudos
Message 1 of 4
(2,475 Views)

It looks like some point between DAQmx 16.1 and DAQmx 17.6 the dll entry points were changed:

 

Create Channel dll entry point in DAQmx 16.1Create Channel dll entry point in DAQmx 16.1Create Channel dll entry point in DAQmx 17.6Create Channel dll entry point in DAQmx 17.6 

John Passiak
0 Kudos
Message 2 of 4
(2,465 Views)

Can anybody respond?  Just looking for some clarification about why this was done so I can feel better about it really...  not sure what we're going to do about it yet.

John Passiak
0 Kudos
Message 3 of 4
(2,430 Views)
Solution
Accepted by topic author John_P1

Hi John,

 

Your solution (build the app with 16.0) is the correct one... built apps with a version of DAQmx are compatible with future DAQmx runtimes, but aren't guaranteed to work with previous ones, because newer versions of DAQmx can call into entrypoints that aren't present in older versions of DAQmx.

 

For the specific situation you've run into, there was a refactor that took place in 16.1 that necessitated a change in the entrypoints between LV and the underlying DAQmx DLL. That interface is generally considered "internal" (and the DAQmx API VIs will use the "newest" version), but we do preserve older entrypoints in that DLL due to the built-application case.

 

——
Brandon Streiff
ni.com/compactdaq · ni.com/daq
Message 4 of 4
(2,415 Views)