【发布时间】:2013-06-05 23:16:25
【问题描述】:
我正在学习.NET框架编程模型。
当托管 exe 运行时(因此其中没有机器代码),CLR(mscorlib.dll) 如何接管并进行 JIT 编译,或者谁调用了 CLR,或者它一直在运行?
【问题讨论】:
-
@series0ne - 我不认为这是一个完全的骗局。那篇文章没有解释操作系统如何将 .exe 识别为托管代码(即:如何扩展 PE 以包装 IL)。
-
@series0ne 嗨,谢谢你的评论。我知道 C# 是如何工作的?什么是 CLR,它有什么作用? C#代码转换成什么?但我的问题在您提供的链接中没有答案。
-
@ZoomIn,啊!我在这里想得太深入了。 - 由于J...的回答,即使我也学到了一些东西。 - 我很想知道这方面,Mono 是如何编译 .NET 应用程序的……它肯定不会使用相同的 PE 格式,因为这在传统上不是 Windows 域之外的已知可执行格式。
-
@series0ne Linux 使用 ELF(不是 PE),但我认为 Mono 不会生成任何包装器。据我所知,您必须像
mono hello.exe(在命令行中)一样直接调用已编译的程序集。