【发布时间】:2011-07-21 18:59:46
【问题描述】:
CLR 如何识别应用程序的主要方法以开始执行?
执行 .exe 文件时,CLR 执行的操作顺序到底是什么?
【问题讨论】:
-
我很难找到一个完全相同的副本,但有很多关于
Main()方法的问题涉及某些方面。
标签: c#
CLR 如何识别应用程序的主要方法以开始执行?
执行 .exe 文件时,CLR 执行的操作顺序到底是什么?
【问题讨论】:
Main() 方法的问题涉及某些方面。
标签: c#
入口点被称为Main 是一个C# 标准。当编译为 IL 时,它被标记为 .entrypoint,这是 CLR 用来识别启动方法的。
(来源:Why is Main method private?)
.NET 可执行文件也是普通的 Win32 可执行文件。在正常的 Win32 入口点放置一个小的引导代码,用于启动 CLR。在 WinXP 之前的操作系统上,可执行文件作为普通的 Win32 exe 启动,调用启动 CLR 的引导程序代码。一旦启动,CLR 在 IL 代码中查找 .entrypoint 并开始执行。在 WinXP 及更高版本上,操作系统将文件识别为 CLR 可执行文件并直接调用 CLR。
【讨论】: