【发布时间】:2014-05-30 09:02:49
【问题描述】:
我试图弄清楚像 printf() 这样的标准 C 函数是如何在 Windows 环境中加载到内存中的。
我知道crt0.obj 准备堆栈,调用int main(int argc, char **argv),然后使用main 返回的退出代码退出进程。
我还听说 C 标准函数位于一个名为 msvcrt.dll 的共享库中。我想知道 crt0 是否也加载 msvcrt.dll 或者有一个 msvcrt.lib 也由编译器自动链接。
谢谢你,对不起我的英语:)
【问题讨论】:
-
另外,我建议您获取 (1) Process Monitor 和 (2) Depends 的副本,并学习如何同时使用它们。它们都非常适合回答像您这样的问题。他们是免费的。
-
我没有仔细检查过,但我相信 crt0.obj 是 msvcrtnn.dll 的一部分。
标签: c++ c windows dll operating-system