文章预览
通常我们所说的main或WinMain主函数,其实并不是入口函数,真正的入口函数是mainCRTStartup/wmainCRTStartup/WinMainCRTStartup或wWinMainCRTStartup,具体视编译选项而定。 一、了解VS2022的启动函数 1、新建一个控制台应用程序 2、断下来后查看堆栈信息 3、查看mainCRTStartup函数源代码,右击,选择转到源代码 extern "C" DWORD mainCRTStartup ( LPVOID ) { return __scrt_common_main(); } 4、继续转到__scrt_common_main函数 static __forceinline int __cdecl __scrt_common_main () { __security_init_cookie(); //初始化焕春区溢出全局变量 return __scrt_common_main_seh(); } 5、继续转到 __scrt_common_main_seh 函数 static __declspec(noinline) int __cdecl __scrt_common_main_seh() { ..... ..... int const main_result = invoke_main(); ...... ...... } 6、查看 invoke_main 函数 static int __ cdecl i
………………………………