【问题标题】:/SUBSYSTEM:Windows program will not write to command line/SUBSYSTEM:Windows 程序不会写入命令行
【发布时间】:2010-04-01 15:10:51
【问题描述】:

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

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

我做错了什么?

【问题讨论】:

    标签: command-line visual-studio-2005 console subsystem


    【解决方案1】:

    这很烦人,我同意。你没有做错任何事,这是 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 的一些建议可能会有用。

    【讨论】:

      【解决方案2】:

      这是一个老问题 - 请参阅 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-27
        • 1970-01-01
        • 2010-10-14
        • 1970-01-01
        • 2021-02-28
        • 2013-08-26
        • 2019-08-01
        相关资源
        最近更新 更多