Win CE 7平台上的错误c2039和错误c2873
error c2039 and error c2873 on Win CE 7 platform
代码在Win32平台下可以正确编译,但在WinCe平台下在Debug模式下会出现很多错误。这些错误与头文件 cstdio、cstring 和 cwchar 相关。
Microsoft Visual Studio 9.0\VC\ce\include\cstdio(82):错误 C2039:“_gets_instead_use_StringCbGetsA_or_StringCchGetsA”:不是“全局命名空间”的成员
错误 C2873:“_gets_instead_use_StringCbGetsA_or_StringCchGetsA”:符号不能用于 using 声明
error C2873: 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' : 符号不能用于 using 声明
ce7\include\cwchar(66):错误 C2873:'swprintf_instead_use_StringCbPrintfW_or_StringCchPrintfW':不能在 using 声明中使用符号
\include\armv4i\stdlib.h(146):错误 C2065:“_malloca”:未声明的标识符
A 后缀通常连接到具有 8 位和 16 位 unicode 版本的函数的 ASCII 版本(后者通常以 W 作为后缀)。
Windows CE 本身仅支持 unicode,因此如果您尝试构建使用 ASCII 的代码,您可能会遇到问题。标准 C/C++ 库中有 ASCII 函数的部分实现,涵盖了最常用的函数和对象,但您引用的可能不存在。
您可以尝试定义 UNICODE 和 _UNICODE 来构建该代码的 "W" 版本,希望它的任何部分都不假设 1 个字符 = 1 个字节。
我所做的就是更改包含文件的顺序。我将 "winsock2.h" 头文件放在其他头文件之后。现在我没有得到那些错误。
Before I had:
#include < winsock2.h >
#include < vector >
#include < map >
#include < string >
After:
#include < vector >
#include < map >
#include < string >
#include < winsock2.h >
代码在Win32平台下可以正确编译,但在WinCe平台下在Debug模式下会出现很多错误。这些错误与头文件 cstdio、cstring 和 cwchar 相关。
Microsoft Visual Studio 9.0\VC\ce\include\cstdio(82):错误 C2039:“_gets_instead_use_StringCbGetsA_or_StringCchGetsA”:不是“全局命名空间”的成员
错误 C2873:“_gets_instead_use_StringCbGetsA_or_StringCchGetsA”:符号不能用于 using 声明
error C2873: 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' : 符号不能用于 using 声明
ce7\include\cwchar(66):错误 C2873:'swprintf_instead_use_StringCbPrintfW_or_StringCchPrintfW':不能在 using 声明中使用符号
\include\armv4i\stdlib.h(146):错误 C2065:“_malloca”:未声明的标识符
A 后缀通常连接到具有 8 位和 16 位 unicode 版本的函数的 ASCII 版本(后者通常以 W 作为后缀)。 Windows CE 本身仅支持 unicode,因此如果您尝试构建使用 ASCII 的代码,您可能会遇到问题。标准 C/C++ 库中有 ASCII 函数的部分实现,涵盖了最常用的函数和对象,但您引用的可能不存在。 您可以尝试定义 UNICODE 和 _UNICODE 来构建该代码的 "W" 版本,希望它的任何部分都不假设 1 个字符 = 1 个字节。
我所做的就是更改包含文件的顺序。我将 "winsock2.h" 头文件放在其他头文件之后。现在我没有得到那些错误。
Before I had:
#include < winsock2.h >
#include < vector >
#include < map >
#include < string >
After:
#include < vector >
#include < map >
#include < string >
#include < winsock2.h >