|
目录
问题描述:
程序装载原理
如何设置程序入口点?
解决方法:
方法1:
方法2:
问题描述:
启动GUI应用程序,但是每次都启动dos窗口,dos窗口也可以叫做控制台、命令行窗口。
终极目标:启动GUI应用程序时,不要显示dos窗口/控制台窗口/命令行窗口。
程序装载原理
操作系统首先装载应用程序,然后初始化,最后转入到程序入口点执行。
程序的的默认入口点,由连接程序设置。
1.连接程序设置控制台程序入口函数是mianCRTStartup,mainCRStartup调用main.cpp中入口函数默认为mian()函数,也可以通过命令修改:
// 通过下面这句话将入口函数改成fn.
#pragma comment(linker, "/entry:fn")
2. 连接程序对图形用户界面GUI程序设置的入口函数是WinMainCRTStartup,WinMainCRTStartup调用自己写的入口函数,就是main.cpp中的main()函数,或者其他设置的入口函数。
如何设置程序入口点?
具体设置那个入口点,有连接器的“/subsystem:"选项参数确定,”/subsystem:"告诉操作系统如何编译生成.exe文件。
/subsystem有四个选项:“CONSOLE|WINDOWS|NATIVE|POSIX"
WINDOS:则表示应用程序运行时不需要控制台。
解决方法:
方法1:
工程右键-【属性】-》【配置属性】-》【系统】-》【子系统】,设置为“Windows(/SUBSYSTEM:WINDOWS)。

方法2:
在main.cpp代码中插入代码:
#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
|