2017-04-25 2 views
1

Visual Studiop 2013をインストールしたWindows 10/64ビットボックスにDLLのビット幅を調査します。パスを含めると、dumpbinユーティリティが異なる結果になる

dumpbin /headers C:\windows\system32\msvcp120.dll | findstr machine 

レポート:8664マシン(x64)の

しかし

cd C:\windows\system32\ 
dumpbin /headers .\msvcp120.dll | findstr machine 

レポート: 14Cマシン(x86の)32ビット・ワードマシン

、私はいくつかのマシン上でそれを試してみました同じ結果を得ました。どうしたの ?

+0

ありがとうHans - 意味があります。私はコマンドを実行するために "x86ネイティブツールコマンドプロンプト"を使用するので、私はdumpbinの32ビットバージョンを使用していると思います。明示的に64ビット版(「C:¥Program Files(x86)¥Microsoft Visual Studio 12.0¥VC¥bin¥amd64¥dumpbin.exe」)を使用すると、\ windows \ system32の64ビットと32ビット\ windows \ syswon64の場合は、どこから実行しても関係ありません。 – speedwell

答えて

2

これは作業中のファイルシステムリダイレクタで、c:\ windows \ system32ディレクトリを見ると常に64ビットOS上でアクティブになります。 実際にはで、c:\ windows \ syswow64 \ msvcp120.dllを見ているため、マシンの種類はx86です。ほとんどのユーザーのように、32ビットバージョンのdumpbin.exeを実行することが主な原因です。 64ビットバージョン(vc/bin/amd64ディレクトリ)だけがリダイレクトされません。

私はちょっと困惑し、以前は知らなかったリダイレクタの1つの側面を発見しました。それはのみ相対パスをリダイレクトします。したがって。\ msvcp120.dllまたは.. \ system32 \ msvcp120.dll。しかし、ではなく、というフルパスがあります(c:¥windows¥system32¥msvcp120.dllなど)。ドライブレターは実際に重要ではありません。