開発・運用

プログラムやDLLファイルの依存関係がわかる「Dependency Walker」

投稿日:

今回はアプリケーション開発者向けのツールを紹介します。自身で開発したアプリケーションを他のPCでプログラムを起動すると「dllがありません」というエラーが表示されて起動できない場合があります。そのような場合に役立つのがDependency Walkerです。Dependency Walkerはexe形式のプログラムやdllファイルの依存関係を調べることができるアプリです。

このアプリで仕事が効率化できる理由

  • EXEやDLLの依存関係をツリー形式で表示できる

使い方

依存関係を調べる

サイトトップの下にスクロールするとダウンロードのリンクがあります。32bit版(x86)、64bit版(x64)、Itanium版(IA64)が用意されていますので、お使いのOSに応じたバージョンのものをダウンロードしましょう。

zipファイルがダウンロードできますので、解凍後、「depends.exe」をダブルクリックして起動します。

以下の画面が表示されます。左のフォルダアイコンをクリックします。

調べたいexeファイル、またはdllファイルを選択します。今回は「notepad.exe(メモ帳)」を選択します。

しばらく時間がかかった後、以下の解析結果が表示されます。左上のツリーでは、exeファイルが内部でロードするdllが表示されます。PC上に存在しない場合はアイコンが?マーク、後からロードされるdllについては砂時計マークで表示されます。また、ツリーの右側では選択したDLLの関数一覧が表示されます。

dllファイルが存在するはずなのに「?」マークとなる場合もあります。その場合は、検索パスを追加しましょう。「Options」メニューの「Configure Module Search Order」をクリックします。

検索するフォルダ一覧が表示されます。下側にdllの存在するパスを指定して「Add Directory」ボタンを押すことで検索対象パスを追加できます。

検索結果を保存する

また、「File」メニューの「Save As」より検索結果を保存することができます。

保存場所およびファイル名を指定して「保存」ボタンで保存できます。既定ではDependency Walkerの独自形式であるdwi形式で保存されます。dwi形式で保存した場合は、再度、Dependency Walkerで開くことができます。また、「ファイルの種類」よりテキストファイルなどに変換して出すこともできます。

テキストファイルにして保存した場合は以下のようになります。基本情報の他、依存するファイル名がすべて出力されますので、検索したい場合に便利です。

以上がDependency Walkerの使い方でした。Dependency Walkerはアプリケーション開発者の方がインストーラを作成する際に、同梱するDLLを調べるのにも役に立ちます。今回「notepad.exe」の関連DLLはOSにプリインストールされているはずですので含めなくても問題ありませんが、自身で作成したDLLなどがない場合は、インストーラに含めるようにしましょう。その他、プログラムが起動しない場合の調査や、DLLで定義されている関数情報を調べるのにも役立ちますので、アプリケーション開発者の方はぜひ入れておくとよいでしょう!

解説動画(YouTube)

サイト情報

URL       :http://www.dependencywalker.com/

-開発・運用
-, , ,

Copyright© WebCli , 2019 All Rights Reserved.