C ++入口点 - >主要()

时间:2011-09-14 17:14:55

标签: c++ windows visual-studio-2010 windows-7 portable-executable

我正在编写自己的小用户模式调试器以获得乐趣。我知道PE头中指定的入口点不是程序定义的main()(至于微软c ++运行时也是如此)

我在哪里可以找到关于此入口点之间的调用的一些文档,直到实际的main()函数,调用它们的原因以及它们的作用?

3 个答案:

答案 0 :(得分:2)

你做不到。实际上主要可能不存在。例如:您可以覆盖链接器使用的默认CRT入口点,主内容可以内联到CRT启动函数等...

答案 1 :(得分:1)

CRT的源代码随Visual Studio一起提供。例如,对于Visual Studio 2010的默认安装位置,它位于:

C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src

实际main()位于crt0.c

不同类型的CRT(静态,DLL,MT,x86,x64等)由某些定义控制,如CRTDLL_M_IA64等。你会在挖掘的时候看到。

答案 2 :(得分:0)

除了源代码本身之外,AFAIK的调用等代码的操作都没有记录。

将光标放在main中,然后使用调试器“run to here”。或者在那里设置一个断点。然后只检查调用堆栈中的调用。

干杯&第h。,