当C++程序在Windows上终止时,终止存根调用的最后一个函数是什么?

uni*_*n83 7 c++ reverse-engineering visual-c++

这个问题是关于逆向工程和Microsoft标准C库.

当C程序优雅地运行时,即在a return 0;结束时main().一切都发生了(请概括).具体来说,C库调用的最后一个函数是什么?

Igo*_*sky 8

您可以在"%Program Files%\ Microsoft Visual Studio x.0\VC\crt\src"中找到Microsoft CRT的源代码.

可执行文件(mainCRTStartup)的入口点在crt0.c中,或者,如果使用运行时DLL,则在crtexe.c中.在调用main()它之后你可以看到它exit().源代码exit()在crt0dat.c中.它调用C和C++终止处理程序(关闭stdio句柄等),调用atexit()函数,最后调用调用kernel32的ExitProcess()的 __crtExitProcess ().

  • 没错,但你没有说你有Express版.您还可以安装完整版的试用版,并在那里查看源代码. (2认同)