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