指定されたモジュールが見つかりませんでした - 64ビットのDLLを
質問
私はそれがコンパイルされたプラットフォームを変更することにより、x64のにDLLを変換するためのVC ++(VS2008)でコンパイルしようとしたとき、ネイティブCを使用して書かれている32ビットDLLを有していました。しかし、私はまた、それがDLLをロードするために失敗した「x64の」プラットフォームである私のC#アプリケーションからDLLにアクセスしようとしたとき。私は自分のアプリケーションでDLLをリンクするためDLLIMPORTを使用します。
私はVistaで使用するオペレーティングシステムを、しかし、私は自分のアプリケーションからDLL関数で呼び出すことができcouldntのそれは、DLLをロードできませんでしたと言います。
この問題を解決する方法はあります。
あなたの助けから楽しみにしています。
よろしく、 ジョージア
解決
どのようにリンクものを見つけるためのツール「依存関係ウォーカー」(勝利のためにLDD-のようなツール、www.dependencywalker.com)をしてみてください。役に立つかもしれません。
他のヒント
私の推測では、あなたの新しいDLLは、それが必要とするいくつか欠けている64ビットのDLLのことがあり、依存関係になります。
あなたはDLLの異なるバージョン(のx86 / x64の)を構築しているところを確認する。
一番簡単な方法は、あなたのターゲットフォルダの「x64の」サブディレクトリであることを64ビットのDLLのターゲットディレクトリに設定されています。あなたの64ビット・ソリューションの構成では、x64の 『ディレクトリC#」も可能にするsのターゲット・ディレクトリ』を設定します。
これは、各プラットフォームのexeファイルが正しいDLLをロードしようとするようになります。
あなたの助けをありがとうございます。
私はCの下にDLLを配置する場合:\ WINDOWS \ System32には、\エラーが解決
。おかげで、 ジョージア
私はかつて、これらの線に沿ってこれで問題がありました。私はC#のから呼び出すために必要なことを、ハードウェアの一部へのインタフェースを務めたC ++ DLLを持っていました。ハードウェアの一部が接続されなかった場合しかし、それはDLLIMPORT呼び出しを失敗します。C#はちょうどそれがDLLを読み込むことができませんでしたので、DLLの初期化関数は、失敗を返していましたので、これがある、それはどこで行うことではないかもしれませんDLLがある。
あなたがCコードでDLLを設定しているときに、何らかのエラーが生じていないことを確認します。