LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

Executable requires both cvirte.dll and instrsup.dll

I created a distribution kit and I selected to install the full run-time engine in the application directory. After installing the executable on the target PC, I tried to run the program and get an error message saying it can't find the instrsup.dll. If I put the instrsup.dll in the app directory it runs fine. Why is it looking for the instrsup.dll in the first place? I thought the instrsup.dll is just a smaller subset of the full runtime engine cvirte.dll?  If I use process explorer and look at the .dll's loaded while the software is running I do see both cvirte.dll and instrsup.dll loaded.
 
-Ryan
0 Kudos
Message 1 of 6
(4,414 Views)
Ryan,

It is possible that you are calling into another DLL (e.g. an instrument driver) that was linked against the instrument driver runtime (instrsup.dll).  While cvirte.dll is a superset of instrsup.dll, if a program links against a particular library, then that is the library it needs to load.  It can't somehow know that it can use cvirte.dll instead.  That is why your app is loading both.

As far as correcting the distribution problem, all you have to do is make sure to select the Instrument Driver Run-Time subcomponent of LabWindows/CVI Run-Time Engine in addition to the Standard Run-Time item.

Mert A.
National Instruments
0 Kudos
Message 2 of 6
(4,394 Views)
When you build a distribution kit in labwindows 7.1, your options are : 1) Full runtime engine support; 2) Instrument driver support only; 3) Labview real time support; 4) none; and 5) All engines. You can not select both full engine support AND Instrument driver support. For now I will use the "All engines" option. It adds the lv_rt.dll to the app directory (which I don't need), but I'd prefer to do this rather than create a separate file group for just the instrsup.dll.
 
Thanks,
 
Ryan
0 Kudos
Message 3 of 6
(4,392 Views)
I'm sorry, I assumed you were using 8.0 or later.  In 7.1, you would need to do exactly what you've done, which is to use the All Engines choice.  There should be no harm in bringing the cvi_lvrt.dll along for the ride.

Mert A.
National Instruments
0 Kudos
Message 4 of 6
(4,390 Views)

One of these days we'll upgrade to Labwindows 8 but until then....

 

Thanks,

 

Ryan

0 Kudos
Message 5 of 6
(4,386 Views)
Ryan, It is possible that you are calling into another DLL (e.g. an instrument driver) that was linked against the instrument driver runtime (instrsup.dll).  While cvirte.dll is a superset of instrsup.dll, if a program links against a particular library, then that is the library it needs to load.  It can't somehow know that it can use cvirte.dll instead.  That is why your app is loading both.As far as correcting the distribution problem, all you have to do is make sure to select the Instrument Driver Run-Time subcomponent of LabWindows/CVI Run-Time Engine in addition to the Standard Run-Time item.Mert A.National Instruments
0 Kudos
Message 6 of 6
(4,365 Views)