如何将字符串转换为MessageBox C ++?

时间:2016-01-19 11:21:18

标签: c++ string netbeans messagebox

你好这是我的简单代码。我想在该MessageBox中使用String。我用谷歌。但我没有好的解决方案。我正在使用netbeans和Mingw。

#include <windows.h>
int main()
    {
MessageBox(NULL, "Hello world","Warning!", 
MB_ICONEXCLAMATION | MB_OK);
}

现在,您可以在该消息框中看到“Hello world”。我想将其指定为字符串。这样的事情。

String mymessage = "Hello world";

并将其称为:

MessageBox(NULL, mymessage  ,"Warning!", 
    MB_ICONEXCLAMATION | MB_OK);

我是C ++的新手。如果您有C ++教程,请列出它。请不要添加Visual C ++。谷歌总是提供Visual C ++解决方案。但那解决方案并没有解决我的问题。希望你能理解。

感谢您的时间。

在这种情况下,我的主要任务是分配String并为MessageBox调用它。

4 个答案:

答案 0 :(得分:1)

尝试

MessageBox(NULL, mymessage.c_str()  ,"Warning!", 
    MB_ICONEXCLAMATION | MB_OK);

说明: MessageBox的第二个参数应为const char*(如果未定义宏UNICODE),则std::string无法隐式转换为const char*。所以你应该使用const char* c_str() const方法。

答案 1 :(得分:1)

MessageBox获取一个指向以null结尾的字符串作为输入的指针,因此您需要使用c_str()运算符从字符串本身获取指向字符串的指针:

MessageBox(NULL, mymessage.c_str(), ...)

答案 2 :(得分:0)

您无法在std::string中使用MessageBox作为标题和/或消息。因为,MessageBox接受LPCWSTR类型作为其第二和第三参数。因此,如果要在MessageBox中使用 string ,则必须使用std::wstring。 示例代码:

#include <Windows.h>
#include <iostream>

int main()
{
    std::wstring value = L"Your message goes here";
    MessageBox(NULL, value.c_str(), L"Warning", MB_ICONEXCLAMATION | MB_OK);
    return 0;
}

答案 3 :(得分:0)

#include <windows.h>
#include <string>

#include <iostream>

#include <cstdlib>

using namespace std;

main()

{


  string mHeader ="Hello! \n \n";
string mReport ="This is test one! \n \n";

MessageBox(NULL,  mReport.c_str(), "Waring", MB_ICONEXCLAMATION | MB_OK);

return 0;

}

你好这是最后工作的代码。感谢您的支持。没有你的帮助,我无法写作和学习这一点。所以现在你可以看到这里有两个字符串:mHeader和mReport。我想将这两个String添加到我的MessageBox中。但我怎么做到这一点?除了告诉我代码中是否有任何错误。

再次感谢你。