2011-11-04 12 views
2

私はWin7-64で新しいコンピュータを手に入れました。私はVS2010をインストールし、32ビット環境用のC++アンマネージDLLをコンパイルしようとしています。私がDependency Walkerで作成したDLLを見ると、私のファイルは32ビットですが、すべての従属DLLは64ビットで、エラーメッセージ:異なるCPUタイプのモジュールが見つかりました。64ビットコンピュータで32ビットのアンマネージDLLをコンパイル

DLLが使用可能で、depends.exeでエラーが表示されないようにするには、何が必要なのですか?

答えて

1

32ビットの依存関係ウォーカー(両方とも同じマシンにインストール可能)を使用する必要があります。

依存関係ウォーカーは、WOW64ディレクトリを使用するほどスマートではないため、依存関係ウォーカーがWOW64内で実行されている場合にのみ32ビットの依存関係が検出されます。

+0

魅力的です。あなたが正しい。しかし、私は64/86の不一致のために私が望んでいたDLLの関数をP/Invokeしようとすると、まだエラー8007007Eを取得します。ドローイングボードに戻る... – erict

+0

@Erict:アプリケーションがDLLを32ビットでロードしていますか? –

+0

私はばかです。プロジェクトを64ビット環境に変換する途中で、出力フォルダがbin \ Debugからbin \ x86 \ Debugに変更されました。私はこれに気がつかず、postbuildイベントはDLLをbin \ Debugにコピーし続けました。すべて今はうまくいく。ありがとう! – erict

関連する問題