6

私のマネージド .net アプリケーションは、(PInvoke 経由で) アンマネージド dll を使用するサード パーティの .net ライブラリを使用します。どのdllがロードされているかを知りたいです。"Process Explorer" と "Dependency Walker" を使用しようとしましたが、マネージ DLL しか表示されません。

4

1 に答える 1

11

任意のデバッガーでこれを実行できます (windbgたとえば)。ただし、Visual Studio をパックしている可能性が高いため、その方法について説明します。

Visual Studio デバッガーをアプリケーションにアタッチします。次のように、ネイティブ デバッガーのみを選択することを忘れないでください。

デバッガーの種類をネイティブに設定する方法

アタッチしたら、[Debug] -> [Break] を押し[CTRL] + [ALT] + [U]て [Modules] ウィンドウを表示します (どこかのメニューにありますが、見つかりません!)。 WPF):

モジュール一覧

私の場合、マネージ デバッガーも有効にし、そのスクリーンショットのために、プロセス名を列リストの先頭に移動しました。

プロセス名の: Native後に続く場合、それはアンマネージ DLL です (混合モードの可能性もあります)。

Windowsのすべてのプロセスには、アンマネージ DLL の適切な長いリストが常にロードされていることに注意してください。Windows は本質的に管理されておらず、アプリケーションの究極のホストであるためです。

しかし、確かに、このリストを出発点として使用し、そこから絞り込むことができます.

于 2012-08-30T10:12:20.923 に答える