0

我正在学习 .NET 框架编程模型。

当托管 exe 运行时(因此其中没有机器代码),CLR(mscorlib.dll)如何接管并进行 JIT 编译,或者谁调用 CLR 或者它一直在运行?

4

2 回答 2

2

检查那个问题,它的链接问题也很好。

顺便说一句,mscorlib.dll 不是 CLR,它只包含基本的托管类型(请参阅那个问题)。

于 2013-06-10T10:39:11.133 回答
1

托管可执行文件仍然包含一个标准的Portable Executable (link)*标头,其中包含以下信息:

  • 它是什么类型的模块,
  • 模块创建时间戳,
  • CPU架构(32/64),
  • _CorExeMain()(或 _CorDLLMain())函数的入口点内存地址

在启动任何应用程序时,Windows 都会读取 PE 标头 - 对于 .NET 应用程序,标头将其标识为托管程序集,然后将执行转移到 CLR。


*请参阅:.NET、元数据和 PE 格式部分

于 2013-06-10T10:24:26.993 回答