我在Visual Studio2005中有一个混合模式的C++-CLI程序,它被设置为使用/SUBSYSTEM:Windows。一般来说,它是一个图形化的应用程序,通过其快捷方式或通过注册到它的文件类型启动。
但是,在极少数情况下,用户希望通过带参数的命令行运行它。我可以很好地访问参数,这是在写到控制台时,响应从命令行启动的带有参数的程序,在那里我看不到Console::WriteLine有任何影响。
我做错了什么?
发布于 2010-04-01 23:18:05
这个很烦人,我同意。你没有做错任何事,这是Windows安装方式的一个怪癖。
解决这个问题是可能的,至少在某些情况下,请参见http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspx。不过,我还没有遇到其他人真正使用过这些方法。
大多数人只会创建两个不同名称的可执行文件版本,一个用于批处理用户("myapp.exe"),另一个用于从“开始”菜单运行("myappw.exe")。
有关更多信息,How to output to the console in C++/Windows上的一些建议可能会有所帮助。
发布于 2010-04-01 23:20:20
这是一个老问题--请参阅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
https://stackoverflow.com/questions/2561399
复制相似问题