ユーザ用ツール

サイト用ツール


サイドバー

C++/CLI

CLR

実用編

その他

clr:実行手順

アセンブリが実行される手順

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コード埋め込みなのでこっちのほうが汎用的。




/var/www/html/virtual/cppcli/data/pages/clr/実行手順.txt · 最終更新: 2013/12/23 09:08 (外部編集)