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()
,请不要忘记为目标指针分配足够的内存。