所以我正在用c ++学习GUI来制作Windows东西,在WM_COMMAND的情况下,我有一个if语句:

 //declared globally
 char textSaved[20];
 HWND TextBox;

 //within WM_COMMAND case
 if (LOWORD(wParam) == 4)
         {
             int gwtstat =0;
             //char *t = &textSaved[0];
             gwtstat = GetWindowText(TextBox, &textSaved[0], 20);
         }


并且我的编译器告诉我“ char”类型与“ LPWSTR”类型的参数不兼容。如果有人告诉我这意味着什么以及如何解决它,我将不胜感激。同样,这样做的重点是存储文本框的内容。

最佳答案

您可以尝试以下方法:

std::vector<wchar_t> textSaved(20);
...
gwtstat = GetWindowText( TextBox, textSaved.data(), textSaved.size() );
testSaved.resize(gwtstat);
std::wstring str(textSaved.begin(), textSaved.end());

关于c++ - char类型的参数与参数类型LPWSTR不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21249754/

10-08 22:12