|
我的t1.cpp文件代码内容:
#include <wchar.h>
void fun1()
{
wchar_t *pt = L"你"; // a chinese characters 你
// do nothing
}
int main()
{
fun1();
return 0;
}
用C++Test测试,报如下错误
Compiling E:\study\c++test\t1\Product\t1.cpp_0\SourceCodeTestCases\TestHarness\Src\t1_7000.cpp
E:\study\t1\t1.cpp(5) : error C2002: invalid wide-character constant
E:\study\t1\t1.cpp(5) : error C2002: invalid wide-character constant
Error: Compile failed for: E:\study\c++test\t1\Product\t1.cpp_0\SourceCodeTestCases\TestHarness\Src\t1_7000.cpp .
查看C++Test自动产生的文件t1_7000.cpp,发现如下语句:
void fun1()
{
…
auto wchar_t *pt = (L"\xc4\xe3"); CPPTEST_STACK_TRACE_STMT_INFO(12, __FILE__, 8, 1, 0, 0)
….
}
正确的应该是wchar_t *pt = (L"\xc4e3"), c++Test没有正确将中文字符按照两个字节格式赋值给 wchar_t *pt 导致编译错误。
请问哪位老大能解决这个问题?多谢! |
|