3

プログラムで、DLL がマネージ コードかアンマネージ コードかを判断するにはどうすればよいですか? このコードを使用して、すべてのマネージ DLL が MSIL であることを確認しています。ただし、管理されていない DLL では例外がスローされるため、DLL が管理されているかどうかを最初に確認する方法が必要です。

4

1 に答える 1

4

最も簡単なオプションは、そのままファイルを開いて例外をキャッチすることです。アンマネージ アセンブリは、 で例外をスローしますAssembly.LoadFrom

ただし、これをより厳密に判断したい場合は、適切な情報について PE ヘッダーを自分で調べる必要があります。この記事ではプロセスを詳しく説明しますが、DLL の PE ヘッダーのIMAGE_OPTIONAL_HEADER構造を確認する必要があります。

于 2013-03-29T15:40:32.323 に答える