Windows 隐藏控制台
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
在程序中加上如上语句,可以隐藏控制台窗口。
用VC编写的程序,运行的时候需要C/C++运行库的支持。
当我们运行一个程序时,连接器会首先寻找应用程序的启动函数。
以下内容为引用,因小A水平有限,不懂编译器连接开关,未能证实。但结果有效,内容应该是合理的。
引用:
如果你建立了一个console程序的话,编译器得链接开关会是以下这种形式
/subsystem: "console " /entry: "mainCRTStartup " (ANSI)
/subsystem: "console " /entry: "wmainCRTStartuup " (UNICODE)
如果你建立了一个win32 application,编译器得链接开关则会是一下形式
/subsystem: "windows " /entry: "WinMain " (ANSI)
/sbusystem: "windows " /entry: "wWinMain " (UINCODE)
在默认情况下/subsystem 和/entry开关是匹配的,也就是
console对应mainCRTStartup或者wmainCRTStartup
windows对应WinMain或者wWinMain
但是我们也可以通过手动改动的方式使他们不匹配 ,例如我们可以这样改动
#pragma comment( linker, "/subsystem:\ "windows\ " /entry:\ "mainCRTStartup\ " " ) // 设置入口地址
在默认情况下链接器看到/subsystem下是windows选项的时候,它会自动寻找WinMain或者wWinMain
但我们强制指定入口地址,这样运行程序的时候默认的console窗口就会隐藏