指定されたモジュールが見つかりませんでした - 64ビットのDLLを

StackOverflow https://stackoverflow.com/questions/949403

  •  09-09-2019
  •  | 
  •  

質問

私はそれがコンパイルされたプラットフォームを変更することにより、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を設定しているときに、何らかのエラーが生じていないことを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top