当前位置:  开发笔记 > 编程语言 > 正文

一个可执行文件,它基于Visual Studio 2005中的命令行作为GUI应用程序或控制台应用程序启动

如何解决《一个可执行文件,它基于VisualStudio2005中的命令行作为GUI应用程序或控制台应用程序启动》经验,为你挑选了1个好方法。

我在Visual Studio 2005中有一个Qt应用程序,它使用这样的链接,当我运行已编译的可执行文件时,它也不会创建命令行终端.\subsystem:windows

我想创建一个命令行模式:当我使用--nogui命令行参数启动它时,不会显示GUI,但会运行一个简单的命令行程序.由于链接使用/subsystem:windows,命令行模式不显示任何std::cout输出,除非我链接我的可执行文件\subsystem:console.

有没有办法设置编译/链接,以便相同的可执行文件可以呈现GUI窗口或基于命令行参数表现为控制台应用程序?

PS.我使用Qt 4.2.0和Visual Studio 2005,项目是用C++编写的.



1> gabeiscoding..:

我认为这种情况的首选技术是".com"和".exe"方法.在Windows中,从命令行运行程序并且不指定扩展名,查找可执行文件的优先顺序将优先于.exe文件.com.

然后你可以使用技巧让".com"成为stdin/stdout/stderr的代理并启动同名的.exe文件.这提供了允许程序在从控制台调用时以命令行模式执行的行为(可能仅在检测到某些命令行参数时),同时仍然能够作为没有控制台的GUI应用程序启动.

有各种文章描述这一点,例如"如何将应用程序作为GUI和控制台应用程序?" (参见下面链接中的参考资料).

我在google代码上托管了一个名为dualsubsystem的项目,该项目更新了这种技术的旧codeguru解决方案,并提供了源代码和工作示例二进制文件.

我希望这对你有所帮助!

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有