前几天,有同学提出如何创建一个ExE文件,可在控制台下键入文件名执行,也可在文件浏览器种双击打开GUI。开始以为是个很简单的问题,结果发现要实现却很费劲。如果把程序设为Windows Application,在命令行模式下虽然可以启动它,却看不到输出结果;如果把程序设为Console Application,在命令行模式下虽然可以启动GUI,但是后面始终有个Console,虽然可以使用FreeConsole把这个控制台销毁,但是这个控制台总会一闪而过,让你心里总有遗憾。

我们知道devenv就可以在控制台下键入文件名再加一个命令行开关(如:devenv -? devenv –build MyProject.sln),以控制台模式运行,在文件浏览器中双击则打开Visual Studio .NET IDE。它是如何做的呢?

如果你打开Visual Studio的安装目录(X:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE),会发现实际上有两个程序:devenv.exedevenv.com。呵呵窍门就在这里了,.com可不是某个网址,它是可执行程序。如果你把这个devenv.com程序改名(_devenv.exe),在控制台下键入devenv -?,回车,你看到了什么?Visual Studio.Net GUI画面!说到这里你应该明白,devenv是通过两个程序实现在上述效果的。

再补充说一句,基于 Windows 的应用程序要么是控制台应用,要么是GUI应用,二者不可兼得。

posted on 2006-11-06 14:43  ColorSky  阅读(944)  评论(1编辑  收藏  举报