总结-控制台(Console)程序和Windows程序的区别

这是《Programming Microsoft Windows with C#》(作者是Charles Petzold)一书中找到的介绍:

此编译器开关没有做任何非常深刻的事情。 它实际上仅在可执行文件中设置一个标志,该标志指示如何运行程序来加载程序。
如果将可执行文件标记为控制台应用程序并从Windows启动,则Windows操作系统将创建一个命令提示符窗口,该窗口将启动该程序并显示该程序的任何控制台输出。
如果从“命令提示符”窗口中启动控制台应用程序,则直到程序终止,MS-DOS提示符才会返回。
如果可执行文件被标记为Windows应用程序,则不会创建“命令提示符”窗口。 该程序的任何控制台输出都将进入位存储桶。
如果您从命令提示符窗口中启动这样的程序,则在启动该程序后,再次出现MS-DOS提示符。 关键是:如果将Windows
Forms应用程序编译为控制台应用程序,则不会发生任何不好的事情。

由此可见,两者并无根本的不同,只是Windows根据可移植的可执行的文件(PE文件)中的标识,用稍微不同的方法来运行这两种程序而已。

猜你喜欢

转载自blog.csdn.net/NikoHsu/article/details/105381671