#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,在默认情况下该应用程序就是一个 Win32 Application。
从上面可以看出如果我们建立一个win32 console application的话,linker的/subsystem选项应该为

本文介绍了如何隐藏Win32控制台程序的窗口,通过在程序中加入`#pragma comment( linker, "/subsystem:""windows"" /entry:""mainCRTStartup""" )`指令,改变编译器的链接开关,使得控制台程序以Windows子系统运行,从而避免生成console窗口。这种方法涉及到编译器的/Subsystem选项和入口点设置,如CONSOLE和WINDOWS的差异,以及默认的mainCRTStartup和WinMain函数。"
124505393,10527419,Vue Router 深入指南,"['Vue.js', 'JavaScript', '前端开发']
最低0.47元/天 解锁文章
7474

被折叠的 条评论
为什么被折叠?



