C++标识符“环境”未定义
根据this后,我试图包括在一个MessageBox一个新行象下面这样:C++标识符“环境”未定义
std::wstring msg = "Text here" + Environment.NewLine + "some other text";
MessageBox(nullptr, msg.c_str(), L"Hello World!", MB_ICONINFORMATION);
但是编译器生成的错误:
E0020: identifier "Environment" is undefined
我试图包括<windows.system.h>
,但它什么也没做。
项目类型:C++ ATL
在此先感谢。
您不能在您的本机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);
}
Environment.NewLine
在C#中使用,如在该职位在C++中它是Environment::NewLine
对于新行,您可以使用"\n"
但为什么编译器说'Environment'不是类或名称空间的名称?它在C++中不可用吗?或者我需要添加'using'指令,比如'using namespace Environment'? – GTAVLover
@GTAVLover您没有正确的项目类型,要使用环境,您将需要一个基于.net的项目,如CLI/CLR – meJustAndrew
谢谢,那么''\ n“'唯一的方法是在ATL项目? – GTAVLover
它不应该是环境:: NewLine(不知道实际的包...) – user2717954
@ user2717954然后编译器说'E0276 - 名称后跟'::'必须是类或名称空间名称。 :-( – GTAVLover
抱歉只是猜测:)那么什么是环境? – user2717954