何かプロジェクトを作成しようとするさいに、インターネットで同じような機能をもったツールを検索するということは当たり前に行われていると思います。
そう簡単に見つかることは多くありませんが、オープンソースなどで公開されていることもあります。
その際にDLLファイルだけをダウンロードできた。なんてことも…。
そんなときにDLLファイルにどんな関数が含まれているか調べたくなることがあります。
実はVisual Studioに含まれる「Visual Studio 用開発者コマンド プロンプト」で簡単に調べることができます。
Visual Studio 用開発者コマンド プロンプトを起動させよう
Visual Studioが導入されていればスタートメニューから簡単に起動させることができます。
- キーボードのWindows ロゴキー、もしくは画面左下のWindows ロゴをクリックし[スタート]メニューを開きます。
Windows10であれば、左下の検索バーをクリックして進んでも大丈夫です。 - 「コマンド」と入力します。
- 次に、下記画像のように「アプリ」と記載されている部分、もしくは左上のウィンドウマークをクリックします。
- 「開発者コマンド プロンプト for VS2015」のように開発者コマンドプロンプトが表示されると思います。
- クリックして起動します。
この「開発者コマンドプロンプト for VS2015」を使い、DLLファイルの中に含まれる関数を調べます。
DLLファイルに含まれる関数を調べよう
まずは調べたいDLLファイルが含まれるフォルダに移動します。
今回は「C:\workspace」に「twain_32.dll」があると仮定し、調べてみます。
※twain_32.dllは「C:\Windows」に含まれるファイルです。
誤って場所を変えてしまったり、削除してしまったりしないように注意してくださいね。
- C:\Program Files (x86)\Microsoft Visual Studio 14.0>cd C:\workspace
青文字の部分を入力します。
次にDLLファイルに含まれる関数を調べます。
これは「dumpbin.exe」というツールを使い調べることができます。
次のように入力し、DLLファイルをdumpbin.exeにかけてみます。
- C:\workspace>dumpbin /exports twain_32.dll
dumpbinに続く「/exports」オプションは「指定したDLLファイルからエクスポートされる定義を出力」という意味です。
では結果を見てみましょう。
この「twain_32.dll」には、
- AboutDlgProc
- ChooseDlgProc
- DSM_Entry
- InfoHook
- WGDlgProc
という5つの関数が含まれているようです。
まとめ
こういった方法でDLLファイルを調べると、DLLファイルの中にどんな関数が含まれているか調べることができます。
戻り値や引数などの詳しいシグネチャは取得できませんが、関数名が分かれば、その関数名を検索することで、詳しい情報が得られるということも多いです。
今回の例に使った「twain_32.dll」はOSに使用されるライブラリなのであまり詳しい情報などはないかもしれませんが、オープンソースなどで公開されているDLLファイルであればシグネチャ、そして関数の目的なども比較的容易に調べられると思います。