DllNotFoundExceptionが、DLLがあります
-
12-09-2019 - |
質問
私はそれと相互作用するためPsyREG.dllというDLLを提供するハードウェア乱数生成器、ならびにDLLからの方法を使用するためのいくつかのC#ソースのSDKを使用しています。
これは、過去に働いたが、何とかそれは動作を停止しました。私の手は、私が実際に現時点で問題のデバイスへのアクセスを持っていないので、私はたくさんのことを試すことができないとして、
...縛らビットですしかし、ここでは奇妙なことです。 dllが、そこには常にされています同じ場所です。それは、例えば、提供されるC#のソースの輸入を事実File.ExistsでAHD(「PsyREG.dll」)はtrueを返す、と私はダブルチェックしました、それはまったく同じ方法です[DLLIMPORT( "PsyREG.dll")]。
任意のアイデア?
解決
これはおそらく、このDLLは、彼らが登録されていないか、アプリケーションの同じフォルダにないされるいくつかの依存関係を持っている。
他のヒント
おそらくあなたは、DLLの特定の製品バージョンを期待しているかどうかを確認し、製品のバージョンはまだ正しく一致することを確認する必要があります。
私はこの問題に遭遇して、次を解くます:
あなたが/ MDの下でコンパイルする場合は、msvcr90.dllへの依存性があります。 代わりに/ MTを使用してコードをコンパイルしてみます。
Project properties
> C/C++
> Code Generation
> Runtime Library: /MT
私は私のDLLのの1に関して同じ例外を扱った(のがA
それを呼びましょう)。それは(それが実行可能ファイルと同じフォルダ内に存在している間)はこのDLL(A
)を見つけることができなかったので、請求C#がクラッシュした。
問題が別のDLL(A
それを呼び出す)への依存性を持つB
によって引き起こされたことが判明しました。それはそれを必要なときB
がそれを読み込むことができませんでしたので、A
はパスではありませんでした。 B
は、他のDLLのの全体の束を必要とするので、解決策はB
環境変数にPATH
のディレクトリを追加しました。
これはエラーとC#のクラッシュは、そのA
が実際にB
が見つからなかったとき...