【问题标题】:How does .NET know what the main method of my application is?.NET 如何知道我的应用程序的主要方法是什么?
【发布时间】:2011-07-21 18:59:46
【问题描述】:

CLR 如何识别应用程序的主要方法以开始执行?
执行 .exe 文件时,CLR 执行的操作顺序到底是什么?

【问题讨论】:

  • 我很难找到一个完全相同的副本,但有很多关于 Main() 方法的问题涉及某些方面。

标签: c#


【解决方案1】:

入口点被称为Main 是一个C# 标准。当编译为 IL 时,它被标记为 .entrypoint,这是 CLR 用来识别启动方法的。

(来源:Why is Main method private?

.NET 可执行文件也是普通的 Win32 可执行文件。在正常的 Win32 入口点放置一个小的引导代码,用于启动 CLR。在 WinXP 之前的操作系统上,可执行文件作为普通的 Win32 exe 启动,调用启动 CLR 的引导程序代码。一旦启动,CLR 在 IL 代码中查找 .entrypoint 并开始执行。在 WinXP 及更高版本上,操作系统将文件识别为 CLR 可执行文件并直接调用 CLR。​​

(来源:http://www.dotnetperformance.com/downloads/ngen.doc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2018-10-16
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 2011-05-18
    • 2021-12-08
    相关资源
    最近更新 更多