我在Visual Studio 2005中有一个混合模式C ++ - CLI程序,设置为使用/ SUBSYSTEM:Windows。一般来说,它是从其快捷方式或通过注册到它的文件类型启动的图形应用程序。
但是,很少有用户希望从命令行使用参数运行它。我可以很好地访问参数,它在写入控制台时,响应从命令行使用参数启动的程序,我看不到Console::WriteLine
有任何影响。
我做错了什么?
答案 0 :(得分:3)
这个很烦人,我同意。你没有做错任何事,这是Windows设置方式的一个怪癖。
至少在某些情况下,可以解决此问题,请参阅http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspx。我没有遇到任何其他实际使用这些方法的人。
大多数人IME只是创建两个不同名称的可执行文件版本,一个用于批处理用户(“myapp.exe”),另一个用于从开始菜单运行(“myappw.exe”)。
有关详情,How to output to the console in C++/Windows的部分建议可能会有用。
答案 1 :(得分:1)
这是一个老问题 - 请参阅http://www.codeproject.com/KB/cpp/EditBin.aspx了解解决方案
您还可以将流重新打开到控制台
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE /*hPrevInst*/, LPSTR cmd_line, int showmode)
{
AllocConsole(); //create a console
ifstream conin("con"); // not sure if this should be "con:" ?
ofstream conout("con");
cout.rdbuf(conout.rdbuf());
cerr.rdbuf(conout.rdbuf());
cin.rdbuf(conin.rdbuf());
FreeConsole();
return 0;
}
编辑:抱歉这是纯C ++,不了解C ++ / cli