LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Embed DAQmx version information into the executable

I often have problems sending updates to customers that cannot be executed due to conflicts in DAQmx libraries; it normally happens that my development machine (which I regularly update with new CVI releases or service packs) gets a newer DAQmx release than the one installed on customer PC.

This is a severe problem since downloading and installing a 1.2 GB update can be really annoying for customers. Anyway, since it seems there is no other solution (apart maintaining separate PCs with fresh installations of every CVI+DAQmx release I developed applications on, which is not practical nor economical and it may infringe NI licensing policy Smiley Wink ) I would like at least to give a meaningful warning to the user, someting like "Installed DAQmx driver is 8.5; to run this application you must install DAQmx 9.0 or better": it will be a lot better than having the customer calling me and saying "Hey! Your update wouldn't run! It gives a strange error about don't-know-which DLL in the system!"

 

To obtain this I should embed the release of DAQmx installed in development system anywhere in the executable so that I can retrieve it at startup, check with installed driver in the running system and prompt the warning if needed: how can I automatically embed it in the executable?

 

Or is there a different approach so that I can have some DAQmx release on my development machine but produce a exe that runs on an older one?



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 1 of 3
(3,073 Views)

I guess you could write a small application that gets the DAQmx version numbers and writes them out as #defines to a .h file. You could then specify that app to run as a Custom Build Step each time the real application is built (assuming custom build steps work properly these days).

 

--
Martin
Certified CVI Developer
0 Kudos
Message 2 of 3
(3,065 Views)

HI,

I have been running into the same issue with my software.  I don't remember which version of DAQmx was used to create the software.  Upgrading the remote systems DAQmx is not an option.  Is there any way to determine which version a program was compiled with?  I don't understand why every time they update the driver you need to re-compile your exe and the old software doesn't work with the new driver.  It is rediculous and extremely hard to keep track of which software was written with which driver.  I use to not update my drivers unless necessary.  When I upgraded from CVI 2015 to 2019 it updated all my drivers and is still causing me major headaches.

 

Mike

0 Kudos
Message 3 of 3
(1,998 Views)