首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >/SUBSYSTEM:Windows程序不会写入命令行

/SUBSYSTEM:Windows程序不会写入命令行
EN

Stack Overflow用户
提问于 2010-04-01 23:10:52
回答 2查看 889关注 0票数 3

我在Visual Studio2005中有一个混合模式的C++-CLI程序,它被设置为使用/SUBSYSTEM:Windows。一般来说,它是一个图形化的应用程序,通过其快捷方式或通过注册到它的文件类型启动。

但是,在极少数情况下,用户希望通过带参数的命令行运行它。我可以很好地访问参数,这是在写到控制台时,响应从命令行启动的带有参数的程序,在那里我看不到Console::WriteLine有任何影响。

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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上的一些建议可能会有所帮助。

票数 3
EN

Stack Overflow用户

发布于 2010-04-01 23:20:20

这是一个老问题--请参阅http://www.codeproject.com/KB/cpp/EditBin.aspx获取解决方案

您还可以将流重新打开到控制台

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2561399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档