C++ ';无法添加两个指针';使用WCHAR添加LPCWSTR

C++ ';无法添加两个指针';使用WCHAR添加LPCWSTR,c++,wchar,lpcwstr,C++,Wchar,Lpcwstr,我声明了两个变量,如下所示: WCHAR w_ErrorMessage[256]; LPCWSTR lp_ErrMsg; 第一个变量用于返回的SQLite错误消息,第二个变量用于MessageBox文本。我尝试并编写了以下代码: lp_ErrMsg = L"Database sql error: " + WCHAR(w_ErrorMessage); MessageBox(0, lp_ErrMsg, L"Error", MB_ICONERROR | MB_OK); 但类似这样的信息显示: 如

我声明了两个变量,如下所示:

WCHAR w_ErrorMessage[256];
LPCWSTR lp_ErrMsg;
第一个变量用于返回的SQLite错误消息,第二个变量用于MessageBox文本。我尝试并编写了以下代码:

lp_ErrMsg = L"Database sql error: " + WCHAR(w_ErrorMessage);
MessageBox(0, lp_ErrMsg, L"Error", MB_ICONERROR | MB_OK);
但类似这样的信息显示:

如果我删除w_ErrorMessage变量后面的WCHAR,我会得到“Error:cannotaddtwo pointer”

我希望MessageBox显示错误:SQLite错误:%TheActualErrorMessage%
我该怎么做?

在C/C++中,+运算符不用于连接字符串。改用函数。

这是我见过的最漂亮、最令人惊讶的未定义行为。我们很想知道这些汉字是否有意义……
WCHAR(w_ErrorMessage)
将数组
w_ErrorMessage
(可能之前隐式转换为
(WCHAR*)
)转换为
WCHAR
。字面上,指向宽字符的指针。这会使编译器保持沉默,但可能不会提供预期的内容。顺便说一句:如果您按照答案中的建议使用
wcscat()
,请不要忘记为目标指针分配足够的内存。