隐藏win32控制台程序的窗口

 

有时侯写一个控制台程序,不需要在前台出现类似DOS窗口的console窗口,这就要隐藏它;隐藏它很简单,只需在程序前面加上

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

就可以了。

此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项).
首先我们来看一下linker的/subsystem选项:
该选项的语法形式如下:
/SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE} [,major[.minor]]
这个链接选项告诉操作系统如何运行可执行文件
CONSOLE:win32字符模式应用程序,此种类型的应用程序在运行的时候会产生一个类似DOS 窗口的控制台窗口,如果在应用程序的主函数为main()或者wmain(),在默认情况下该应用程序就是一个控制台应用程序
WINDOWS:类型的应用程序不产生console窗口,该类型的应用程序的窗口由用户自己创建。简而言之就是一个标准的Win32 application,其入口地址为WinMain()函数或者wWinMain()函数的地址。如果你在应用程序中定义的主函数为WinMain或者wWinMainÿ

你可能感兴趣的:(window,编程)