2012-08-30 13 views
6

管理された.netアプリケーションは、アンマネージドDLLを(PInvoke経由で)使用するサードパーティの.netライブラリを使用します。私はどのdllがロードされているかを知りたい。私は "Process Explorer"と "Dependency Walker"を使用しようとしましたが、管理されたDLLしか見ることができません。管理対象の.netアプリケーションによってすべてのアンマネージDLL loadadのリストを見つける方法

答えて

10

どれデバッガは(例えばwindbg)これを行うことができます - しかし、それは私がそれを行う方法について説明しますVisual Studioを梱包しているの良いチャンスですので、その

へのVisual Studioデバッガをアタッチアプリケーションは、唯一のネイティブデバッガを選択するために覚えて次のようにアタッチしたら

How to set debugger type to Native

は、デバッグを打つ - >ブレークし、それがメニューにあります(モジュールウィンドウを開き[CTRL] + [ALT] + [U]を押して、どこかが、できます「がtはそれを見つける) - ここではサムスンKiesさんアプリケーションWPFを使用して、私のデスクトップ()から撮影した例です:!私の場合は

The modules list

は、私があまりにもマネージドデバッガを有効にし、にプロセス名を移動しましたそのスクリーンショットの目的のために列リストの開始。

プロセス名の後に: Nativeがある場合は、それはアンマネージDLLです(私が想定している混在モードでも可能です)。 Windowsの中のすべてのプロセスが常にがロードされた管理対象外のDLLの良い長いリストを持っていますこと

注意。なぜなら、Windowsはその中心で管理されておらず、アプリケーションの究極のホストだからです。

もちろん、このリストを出発点として使用し、そこからフィルタリングすることができます。

+0

ありがとう、これは私が必要としていたものです。 – Gerhard

+0

おかげでAndras!それは役に立ちました.... – VVV

関連する問題