質問

私はそれと相互作用するためPsyREG.dllというDLLを提供するハードウェア乱数生成器、ならびにDLLからの方法を使用するためのいくつかのC#ソースのSDKを使用しています。

これは、過去に働いたが、何とかそれは動作を停止しました。私の手は、私が実際に現時点で問題のデバイスへのアクセスを持っていないので、私はたくさんのことを試すことができないとして、

...縛らビットです

しかし、ここでは奇妙なことです。 dllが、そこには常にされています同じ場所です。それは、例えば、提供されるC#のソースの輸入を事実File.ExistsでAHD(「PsyREG.dll」)はtrueを返す、と私はダブルチェックしました、それはまったく同じ方法です[DLLIMPORT( "PsyREG.dll")]。

任意のアイデア?

役に立ちましたか?

解決

これはおそらく、このDLLは、彼らが登録されていないか、アプリケーションの同じフォルダにないされるいくつかの依存関係を持っている。

他のヒント

http://www.dependencywalker.com/ の

おそらくあなたは、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が見つからなかったとき...

が見つかりませんと言ってどのように面白いです
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top