2011-07-21 5 views
3

実行を開始するために、CLRはアプリケーションのメインメソッドをどのように識別しますか?
.exeファイルを実行したときのCLRの動作シーケンスは正確には何ですか?.NETはアプリケーションの主な方法をどのように知っていますか?

+3

私は正確な複製を見つける驚くほど苦労してんだけど、ある側面に触れ 'メイン()'メソッドについての質問がいくつかあります。 – BoltClock

答えて

7

これは、エントリポイントがMainと呼ばれるC#標準です。 ILにコンパイルすると、.entrypointとマークされます。これは、CLRが開始するメソッドを識別するために使用するものです。

(出典:Why is Main method private?

.NET実行可能ファイルは、通常のWin32実行です。通常のWin32エントリポイントでは、CLRを開始する小さなブートストラップコードが配置されます。 pre-WinXP OSでは、実行ファイルは通常のWin32 exeとして起動され、CLRを起動するboostrapコードを呼び出します。開始されると、CLRはILコードの.entrypointをルックアップし、そこで実行を開始します。 WinXP以上では、OSはファイルをCLR実行可能ファイルとして認識し、CLRを直接呼び出します。

(出典:http://www.dotnetperformance.com/downloads/ngen.doc

関連する問題