这些所谓的入口函数,随便放在哪个".cpp"里都可以,只要保证函数在工程里的唯一性就可以了,如果你采用MFC方式开发应用程序或动态库,那么基本上不用去关心什么入口,因为很多东西可以在类初始化时去做,只要你找到类的初始化过程就可以了,至于动态库,完全可以忽略这个入口,直接写你静态函数就可以了。
*** 作系统装载应用程序后,做完初始化工作就转到程序的入口点执行。程序的默认入口点实际上是由连接程序设置的,不同的连接器选择的入口函数也不尽相同。在vc++下,连接器对控制台程序设置的入口函数是maincrtstartup,maincrtstartup
再调用你自己编写的
main
函数;对图形用户界面(gui)程序设置的入口函数是
winmaincrtstartup,winmaincrtstartup
调用你自己写的
winmain
函数。而具体设置哪个入口点是由连接器的/subsystem:选项参数确定的,它告诉 *** 作系统如何运行编译生成的.exe文件。可以指定四种方
式:console|windows|native|posix如果这个选项参数的值为windows,则表示该应用程序运行时不需要控制台,有
关连接器参数选项的详细说明请参考
msdn
库。
以下四种组合,可以实现console和windows模式的混合,可以达到不d出dos窗口的效果,也可以达到在windows程序中向控制台输出printf信息了。
#pragma
comment(
linker,
"/subsystem:windows
/entry:winmaincrtstartup"
)
#pragma
comment(
linker,
"/subsystem:windows
/entry:maincrtstartup"
)
#pragma
comment(
linker,
"/subsystem:console
/entry:maincrtstartup"
)
#pragma
comment(
linker,
"/subsystem:console
/entry:winmaincrtstartup"
)
int
apientry
winmain(hinstance
hinstance,
hinstance
hprevinstance,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)