C ++标识符"环境"未定义

时间:2017-07-18 05:19:05

标签: c++ newline messagebox

根据this帖子,我试图在MessageBox中添加一个新行,如下所示:

std::wstring msg = "Text here" + Environment.NewLine + "some other text";

MessageBox(nullptr, msg.c_str(), L"Hello World!", MB_ICONINFORMATION);

但是编译器生成了错误:

  

E0020:标识符"环境"未定义

我尝试了<windows.system.h>,但没有做任何事。

项目类型:C ++ ATL

先谢谢。

2 个答案:

答案 0 :(得分:1)

您不能在本机C ++应用程序中包含Environment.NewLine,因为它是.NET构造。对于标准C ++中的换行符,请使用std::endl'\n'字符:

#include <iostream>
int main(){
    std::cout << "Hello World." << std::endl;
    std::cout << "This prints\n text on two lines.";
}

对于MessageBox WinAPI函数中的换行符,请使用\r\n个字符。你的代码应该是:

#include <Windows.h>
#include <string>
int main(){
    std::wstring msg = L"Text here \r\n some other text";
    MessageBox(NULL, msg.c_str(), L"Hello World!", MB_ICONINFORMATION);
}

答案 1 :(得分:1)

Environment.NewLine在C#中使用,就像在C ++中的帖子一样Environment::NewLine

对于新行,您可以使用"\n"