LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

advanced analysis library and RTX64

Hi,

I have for many years (back to 2005) a solution based on : 

RTX : IntervalZero RTOS 32bits (https://www.intervalzero.com/)

Visual C++ 6.0

Advanced analysis library (analysis.lib <2003)

 

and the application is deployed on any 32bits OS and works perfectly.

 

I am actually trying to upgrade this solution for windows 10 Pro 64bits platform with :

RTX64: IntervalZero RTOS 64bits (https://www.intervalzero.com/)

Visual studio pro 2012

Advanced analysis library (analysis.lib from LabWindows/CVI 2013)

 

when I try to build the solution, I get the folowing error : 

analysis.lib(loaddll.obj) : error LNK2019: unresolved external symbol __imp_wsprintfA referenced in function __load_dll_if_needed

 

I was able to solve this error by adding the user32.lib to the project. the build of the solution is now ok but It cannot be executed as the use of use32.dll is not permiited by RTX. thus adding use32.dll is definitivelly not the solution.

 

Any help is welcome. Thanks . 

 

 

0 Kudos
Message 1 of 5
(3,453 Views)

I'm not sure if it answers your question, but according to this Wikipedia page

In 64-bit versions of Windows, the 64-bit implementation of Windows USER is called user32.dll and is located in the System32 directory, while a modified 32-bit version (also called user32.dll) is present in the SysWOW64 directory.



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 2 of 5
(3,446 Views)

THanks but unfortunatelly it doesn't answer my question.

my old "advanced analysis library" is doing the job for 32bits operating system without any link to this user32.lib.

But since 2009 and the release of the advanced analysis library for 64bits operating system, the library required the link to user32.lib (the one compatible with 64bit). 

 

I am wondering if there is an other way to avoid the call to this library and to clear this error

 

 

 

 

0 Kudos
Message 3 of 5
(3,438 Views)

Most likely not! Modern Visual C versions (since MSC 7.0) use version specific C runtime libraries. Compiling a library in these versions that does not link any C runtime functionality into it is almost impossible. Even if you don't call any such functions explicitly in your code, the initialization code linked in by Visual C by default will do so. And only Visual C 2005 (MSC 8.0)  and newer can create 64 bit code.

NI would most likely have to create a specific lib file for use in RTX, which I would guess is an near impossibility to get unless you have a very special relationship with some internal developers, or are working for a multi billion dollar company that gives NI substantial sales per year.

 

In addition, your use of that library most likely stretches the license you got for this NI software to a very extreme extend.

Rolf Kalbermatter  My Blog
DEMO, Electronic and Mechanical Support department, room 36.LB00.390
0 Kudos
Message 4 of 5
(3,398 Views)

Fully agree. I was hoping a magic solution !!:

I guess I have no other choice than looking for a library less dependent to other OS libraries.

0 Kudos
Message 5 of 5
(3,381 Views)