#判定法を知っておくと便利なシチュエーション
OracleやPostgreSQLのクライアントドライバをインストールする際に、ファイル名やフォルダ名だけからでは32bitなのか64bitなのか確信を得られない場合がある。
また、アプリケーションが動かない原因を調査する際や、dllの参照が正しくなされれているかを確認する場合にも、32/64bitの判断ができると便利である。
では、どのようにして調べればよいかだが、VisualStudio(VS)に付随しているツール、dumpbin.exeを用いると判定が可能なので、その方法を紹介する。
#事前準備
dumpbin.exeはVSに付属しているツールである。そのためバージョンはExpressでもよいので、VSを判定を行う環境にインストールする必要がある。以下のスクリーンショットはVS2015だが、現在有効なVSであればほかのバージョンでも利用が可能なはずである。
なお、.NETを開発する環境だと標準(C#やVisual Basicなど)のインストールでは、dumpbinはインストールされないのでインストール時にVisual C++の共通ツールをチェックする必要がある。すでにVSがインストール済みの環境であれば、インストールメディアからインストーラーを実行しインストールするように「変更」を行うことでツールを利用することができる。
#使い方
「すべてのプログラム」から「Visual Studio 2015」>「Visual Studio Tools」>「開発者コマンド プロンプト for VS2015」を選択、起動する。
調べたいdllのフォルダに移動し、以下のコマンドを実施する。
dumpbin Oracle.DataAccess.dll /headers | findstr machine
ここで、x64と表示されれば64bit。x86と表示されれば32bit用のdllということである。
なお、"|"以降のfindstrはdumpbin /header の出力に対してパイプライン処理で、machineという単語を含む行を抜き出している。