我有一个混合模式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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top