LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

CVI2015 mbsupp.h vs. VS2015 string.h: '_NLSCMPERROR' macro redefinition (in VS2015)

 

1>c:\<CVI2015>\include\mbsupp.h(37): warning C4005: '_NLSCMPERROR': macro redefinition (compiling source file cvixml.c)
1>  C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt\string.h(22): note: see previous definition of '_NLSCMPERROR' (compiling source file cvixml.c)

 ...is happening in Visual Studio 2015 because the Windows Kit uses indirect

 

#define _CRT_INT_MAX 2147483647  /* in corecrt.h */
#define _NLSCMPERROR _CRT_INT_MAX  /* in string.h */

 

instead of

 

#define _NLSCMPERROR    2147483647

 

which have mbsupp.h and VS2013 (= c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\string.h). The warning is also shown in files which include toolbox.h, but interestingly not in toolbox.c.

 

I added an #ifndef _NLSCMPERROR guard in mbsupp.h around the define there which works for me (still testing).

 

Just for information.

-----------------------
/* Nothing past this point should fail if the code is working as intended */
0 Kudos
Message 1 of 1
(4,474 Views)