NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

NI TS 2014 SP1 64 bit: operator interfcace with 32 bit C/C++ lib/dll cannot load

  1. I use NI Teststand 2014 SP1 with 64 bit and 32 bit on Windows 7 64 bit
  2. Unfortunately there is an old c/c++ dll in 32 bit used within some sequences which cannot become rebuild to a 64 bit version/dll.
  • When i run the sequence in the 64 bit Sequence Editor there is an error - because the 32 bit dll is not compatible with the 64 bit Teststand Version Sequence Editor
  • When i run the same sequence in the 32 bit Sequence Editor there is no error

As far as good ..........................

Now there is a custom build graphical user interface using the Testand API. This application starts the Testand Engine. The same sequence fails with the same error.

What can i do to get it run ? Which engine is started ( 64 or 32 bit - are there 2 different versions at all ) ? ( Can i select or configure which engine - 64 bit, 32 bit is started by my application ? And if so: where can i decide which one is started ).

What happens when i decide to de-install the 64 bit version of Teststand and so try to "force" to start a 32 bit TS Engine.

Kind regards Rainer

0 Kudos
Message 1 of 4
(2,683 Views)

Rainer,

 

there is no way to define an active bitness like defining the specific TS version (version selector).

I haven't tried this but it seems to me that the bitness of the calling application (UI) is selecting the bitness of TS. That means that using a 32bit compiled UI uses TS 32bit while a 64bit UI will call into TS 64bit.

Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 2 of 4
(2,670 Views)

The TestStand engine runs in-process with the UI that creates it so if you want to use the 32-bit engine, your UI must be compiled as a 32-bit application.

 

Another possibility you might want to consider is that you can execute a sequence using a remote execution in the 32-bit engine by calling it from a sequence as a remote sequence from a 64-bit execution. There is a performance cost to that, but it is one way to deal with a legacy 32-bit dll, while still porting most of your code to 64-bit.

 

Hope this helps,

-Doug

Message 3 of 4
(2,651 Views)

Thank you - compiling for a 32 bit platform is the solution !

0 Kudos
Message 4 of 4
(2,583 Views)