所以我使用SDK作为硬件随机数生成器,它提供了一个名为PsyREG.dll的dll用于与之交互,以及一些c#source用于使用dll中的方法。
它过去曾奏效,但不知怎的,它已停止运作。我的手有点束缚,因为我现在实际上无法访问有问题的设备,所以我不能尝试很多东西...
然而,这是奇怪的事情。 dll在那里,它始终是同一个地方。 Ahd实际上File.Exists(“PsyREG.dll”)返回true,我已经双重检查,这与提供的c#source导入它完全相同,例如[的DllImport( “PsyREG.dll”)]。
有什么想法吗?
答案 0 :(得分:39)
可能这个dll有一些依赖项,它们没有注册或者不在应用程序的同一个文件夹中。
答案 1 :(得分:8)
答案 2 :(得分:1)
也许你应该检查一下你是否期望dll的特定产品版本,并确保产品版本仍然正确匹配。
答案 3 :(得分:1)
我遇到了这个问题并解决了以下问题:
如果在/ MD下编译,则依赖于msvcr90.dll。 尝试使用/ MT编译代码。
Project properties
> C/C++
> Code Generation
> Runtime Library: /MT
答案 4 :(得分:0)
我正在处理与我的一个DLL相同的异常(让我们称之为A
)。 C#崩溃了,因为它声称它找不到这个DLL(A
)(当它与可执行文件位于同一文件夹中时)。
原来这个问题是由A
依赖另一个DLL(称之为B
)引起的。 B
不在路径中,因此A
无法在需要时加载它。由于B
需要大量其他DLL,因此解决方案是将B
的目录添加到PATH
环境变量中。
有趣的是C#如何在发现A
时找不到B
而错误地说错了...