LabWindows/CVI User Group Documents

cancel
Showing results for 
Search instead for 
Did you mean: 

LabWindows/CVI Tip: When to Use the Side-by-Side RTE

About the Side-by-Side Run-time Feature - New in LabWindows/CVI 2012

With the new Side-by-Side run-time feature, a DLL or EXE can be bound to a specific version of the LabWindows/CVI Run-Time Engine (RTE). This allows you to isolate your application from future run-time engine upgrades or downgrades.

Prior to LabWindows/CVI 2012, only one version of the LabWindows/CVI RTE could exist on any given machine. When a newer version of the LabWindows/CVI RTE was installed, it would overwrite the older version and compiled applications would henceforth load the latest shared LabWindows/CVI RTE at execution time. Using the newest shared LabWindows/CVI RTE ensures that the latest and best libraries are being called and allows developers to leverage recent bug fixes and RTE improvements without changing their application.

As of LabWindows/CVI 2012, the latest version of the LabWindows/CVI RTE installed still becomes the "shared" RTE but gets installed alongside previous RTE versions rather than overwriting them. This allows for scenarios where an application can continue to execute with an older version of the RTE even though a newer version exists on the machine. There are very few unique cases where this should be used, these are discussed below.

When Should You Use the Side-by-Side Run-time Engine?

The new Side-by-Side Runtime feature is specifically designed for programmers working in highly regulated industries that require extensive validation of all components of their engineering systems, including the software. Take for example a defense contractor receiving a government contract or a pharmaceutical or medical device manufacturer applying for federal certification. These system designers must validate their test equipment, test software and final product under strict standards before receiving approval.This validation process is often expensive and very lengthy, so once a particular version of test software is validated, the test machines are often isolated from updates to avoid the need for expensive revalidation.

With the new Side-by-Side runtime feature, developers can guarantee the version of the LabWindows/CVI runtime engine called during application execution and not worry that an inadvertent software update could overwrite the validated version of runtime libraries. Apart from such cases, it is recommended that developers continue to use the default setting which loads the latest, shared LabWindows/CVI RTE for their applications so as to benefit from the newest code improvements, features, bug fixes and new platform support.

Important Considerations to Remember

When binding your DLL or EXE to a specific version of the LabWindows/CVI RTE, be sure to consider the resulting implications on the code that it calls or is called by. A complete list of considerations is outlined in the Run-Time Engine Binding Considerations Help topic. Below are three of the major provisions to be aware of:

1.    Cannot share handles accross code executing with 2 different versions of the LabWindows/CVI RTE. Handles returned by a LabWindows/CVI RTE are specific to that RTE and you must not pass them to another RTE. Because of this, avoid sharing handles between DLLs that you bind to different versions of the LabWindows/CVI RTE. Selecting <version> side-by-side for entire application in the Target Settings dialog box for executables can help you to avoid sharing handles in different RTEs. For example, do not reference a user interface panel or a TCP handle in a DLL or executable that is bound to a version of the RTE that is different than the RTE that created the user interface panel or TCP handle

2.    Can only bind applications to the same version of the LabWindows/CVI RTE as the development software version. For example, an application developed in LabWindows/CVI 2013 cannot bind against the LabWindows/CVI 2012 RTE. Additionally, an application previously bound to an older version is not preserved when the code is recompiled in a new version of LabWindows/CVI.

3.    Ensure all required RTE versions are present on deployment machines.


Distributing Applications

To distribute an application that contains an executable or DLL bound to the LabWindows/CVI Side-by-Side RTE, you must include the side-by-side RTE in your installer.

How to Bind your DLL or EXE to a Specific LabWindows/CVI Run-time Version

Use the Run-time engine binding option in the Target Settings dialog box (Build»Target Settings) to bind an executable or DLL to a side-by-side RTE. Refer to the Binding Executables and DLLs to Side-by-Side Run-Time Engines help topic to get more information about the options listed below.

2012-08-30_0017.png

Did you find this tip useful? Rate this document or add a comment below.

If you give this a try, share your experience! Add a comment below.

National Instruments
Contributors