简单讲,取消控制台弹出只需要两步【23-10-4实测有效】
1、属性页-连接器-入口点–输入:【mainCRTStartup】,意思是:告诉它从哪里执行呢,从显示的CRT的这个地方执行。
2、属性页-系统-子系统,将原来的控制台改为【窗口(/SUBSYSTEM:WINDOWS)】,选项告诉系统如何运行exe,从窗口开始运行,控制台就不会出来了。
再详细讲下知识点
windows的入口函数有两个,WinMain和wWinMainCRTStartup(窗口类的)。
在vc的编译系统中真正的入口函数是,wWinMainCRTStartup,然后才运行WinMain函数入口点。
一、从配置项里设置取消控制台弹出
1、属性页-连接器-入口点–输入:【mainCRTStartup】,意思是:告诉它从哪里执行呢,从显示的CRT的这个地方执行。
2、属性页居然可以查找,查找选项或开关编辑框内输入,子系统,搜出来的选项,将原来的控制台改为【窗口(/SUBSYSTEM:WINDOWS)】,意思是走的是窗口,而不是弹控制台出来了。
二、代码方式设置取消控制台弹出
由子系统和入口函数两个选项,不同组合可以组合出4种搭配。
#pragma comment (linker,"/subsystem:windows /entry:wWinMainCRTStartup")
#pragma comment (linker,"/subsystem:windows /entry:mainCRTStartup")
#pragma comment (linker,"/subsystem:console /entry:mainCRTStartup")
#pragma comment (linker,"/subsystem:console /entry:wWinMainCRTStartup")
三、发现的问题
发现问题:配置项里入口点设置为WinMainCRTStartup 会报错,代码设置就不会出错,而且代码里设置弹出的控制台和配置项里弹出的控制台样式不一样!
最后找到原因,是函数错了前面少个w【wWinMainCRTStartup】