错误C2308:连接不匹配的字符串

时间:2012-05-04 11:03:34

标签: c++ c windows visual-c++ unicode

在尝试编译Visual Studio 2010中的rosettacode中存在的Maze Generator/Solver in C时,我在编译期间遇到问题。

以下一行

#   define SPC " "
wchar_t glyph[] = L""SPC"│││─┘┐┤─└┌├─┴┬┼"SPC"┆┆┆┄╯╮ ┄╰╭ ┄";

正在抛出错误

1>d:\projects\maze_cpp\maze_cpp\main.cpp(14): error C2308: concatenating mismatched strings
1>          Concatenating wide "" with narrow "?????? ??? ?"

考虑到我对Unicode的了解有限,以及对MSDN中错误的不友好描述,我对这个问题以及如何解决它感到困惑

1 个答案:

答案 0 :(得分:6)

您需要转义宽字符串文字中的"

wchar_t glyph[] = L"\"SPC\"¦¦¦-++¦-+++---+\"SPC\"?????? ??? ?"; 

编辑:

我错过了SPC宏(已由Luchian和jrok发布):

#define SPC L"  "
wchar_t glyph[] = L"" SPC L"¦¦¦-++¦-+++---+" SPC L"?????? ??? ?";