{{indexmenu_n>7}} ====== アセンブリが実行される手順 ====== ===== Windows98やWindows2000の場合 ===== アセンブリがコンパイルされるときmscoree.dllが必要なdllとして指定され、PEの.textセクションには_CorExeMainへのジャンプ命令(x86)が記述される。_CorExeMainはmscoree.dllの中にある関数である。 _CorExeMainはCLRを立ち上げ、exeの中のマネージコードのエントリポイントを探し実行を開始する。 アンマネージコードがdllアセンブリをLoadLibrary()した場合は_CorExeMainの代わりに_CorDllMainが呼ばれる。 ===== WindowsXP以降の場合 ===== PEヘッダのIMAGE_DIRECTORY_ENTRY_COM_DESCRIPTORをみてマネージドであることを判断し、OSがやる。上の方法は使わない。上の方法はx86コード埋め込みなのでこっちのほうが汎用的。