/子系统:Windows程序不会写到的命令行
-
23-09-2019 - |
题
我有一个混合模式C++CLI程序在Visual Studio2005年,设置为使用/子系统:Windows.一般来说它是一种图形用,启动其快捷方式或通过的文件类型的登记。
然而,有一个难得的机会,其中一个用户将需要运行它从命令行与参数。我可以访问的论点,其当它涉及到书面形式向控制台,在响应的程序正在启动从命令行辩论,在那里我看不到 Console::WriteLine
具有任何效果。
我做错了什么?
解决方案
这个讨厌的,我同意。你没有做错任何事,这是一个奇怪的方式窗户是设立。
这是能够解决这个问题,至少在某些情况下,看 http://blogs.msdn.com/junfeng/archive/2004/02/06/68531.aspx .我不会遇到任何其他人的实际使用这些方法。
大多数人IME只是创建两个版本的可执行与不同的名称,一批用户("myapp.exe")和一个当它从一开始菜单("myappw.exe").
更多信息,有些建议 如何输出到控制台在C++/Windows 可能是有用的。
其他提示
这是一个老问题 - 请参见 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
不隶属于 StackOverflow