我在 C++ 中试过这个:
std::string teststring = "hello";
MessageBox(NULL,teststring,NULL, NULL);
错误 C2664:“MessageBoxA”:无法将参数 2 从“std::string”转换为“LPCSTR”
首先,它看起来像 Visual C++,所以要正确标记它。
您可以在 std::string 上使用 c_str() 方法获取内部缓冲区,因此您的代码变为:
std::string teststring = "hello";
MessageBox(NULL,teststring.c_str(),NULL, NULL);
MessageBox 的第二个和第三个参数需要一个C 字符串。
要从std::string您调用c_str()获取 C 字符串,因此调用它的正确方法是:
std::string teststring = "hello";
MessageBox(NULL, teststring.c_str(), NULL, NULL);
试试这个怎么样?
std::string teststring = "hello";
LPCSTR tmp = teststring .c_str()
MessageBox(NULL,tmp ,NULL, NULL);