NI TestStand

cancel
Showing results for 
Search instead for 
Did you mean: 

PostUIMessageEx

Hi,

I am using LabVIEW 6.1, TestStand 2.0.1 running in Win98.

I have a sequence file which uses the SequenceFilePostStepFailure override obtained from the TS examples folder. When my sequence runs in the SeqEditor, everything is ok but when my sequence runs in the LabVIEW Operator Interface, the labVIEW crashes when the SequenceFilePostStepFailure sequence is executed. The crash occurs at the step 'Refresh Execution Display'.
The failure message is 'Failure: "compatexport.cpp", line 33 LabVIEW version 6.1'

Attached is a zip file with two sequence files, one which causes the crash and one where I have change to 'Refresh Execution Display' to call the method PostUiMessage instead of PostUIMessageEx, this seems to work OK. Also is a Readme.txt
file which gives a bit more details.

Any clues as to why this is happening.

Regards
Ray Farmer
Regards
Ray Farmer
Download All
0 Kudos
Message 1 of 3
(3,596 Views)
It appears that since LV 6.0.2 was the latest version of LV at the time that TS 2.0.1 shipped, the LV OI has some features programmed into it using the LV CINTools library that force some of its components to be updated when using the OI with a newer run-time than 6.0.2.

Basically, the TestStand - UI Message Handler.vi of the LV OI will ultimately call functions in the "utilities.dll" found in your C:\TestStand\OperatorInterfaces\NI\LV\Utilities directory when the OI receives a RefreshWindows UI Message via a call to PostUIMessageEx. The utilities.dll module uses functionality found within the LV CINTools library in order to find out if the ActiveX Data Parameter to the PostUIMessageEx function contains a valid execution, sequence context, or sequence file ref
erence. Yet, since certain features of the LV CINTools library is only compatible with the LV run-time version it ships with (as stated in the Using External Code with LabView manual found here: http://digital.ni.com/manuals.nsf/websearch/4f1447f7cd83d6d88625690d00637ced), you are sometimes required to rebuild any modules that use the library's functionalities with the latest version of the library that ships with the version of LV that you intend to use as your run-time system.

The utilities.dll module is shipped with a VC++ 6.0 source project that you can use to rebuild the dll, and once you have done this you can simply replace the dll with the new one that is built in the same directory that it currently resides in. To make things a little simpler, I rebuilt the dll for you and have attached it to this post.

This dll will most likely be posted in a KnowledgeBase document along with the above explanation for future users that run into the same problem with the LV OI.

Jaso
n F.
Applications Engineer
National Instruments
www.ni.com/ask
0 Kudos
Message 2 of 3
(3,595 Views)
Hi Jason,

Thanks for that, new DLL has sorted the problem.

Regards
Ray Farmer
Regards
Ray Farmer
0 Kudos
Message 3 of 3
(3,596 Views)