C++程序的生前死后

Startup Code的作用:

  • 使得C run-time library(CRT)正确地被初始化。
  • 静态对象的C++构造函数能够正确执行。

在默认情况下,CRT的函数名称是下面这样的。

Function name Default for
mainCRTStartup(or
wmainCRTStartup)
An application using /SUBSYSTEM:CONSILE;
calls main(or wmain)
WinMainCRTStartup(or
wWinMainCRTStartup)
An application using /SUBSYSTEM:WINDOWS;
calls WinMain(or wWinMain), which must be
defined with __stdcall
_DllMainCRTStartup A Dll; calls DllMain, which must be defined
with __standcall, if it exists

对于C/C++在main执行之前都需要先执行启动代码(startup code),而main函数其实是在启动码函数中调用的。