我在C#程序中遇到了一个常见的问题。
我一直在网上寻找很多地方,并提出不同的解决方案。到目前为止,ALL已经失败了。
我遇到过这篇文章并尝试了他们无法解决的解决方案: Unable to load DLL The specified module could not be found
我下载了依赖性走路,看看我是否遗漏了任何其他dll,它报告我是,但那些dll是win-API dll。根据此链接:https://social.msdn.microsoft.com/Forums/en-US/a28331ae-19a3-4a34-b3ba-1e8fd4430375/missing-apimswincore-dlls,如果依赖步行者报告缺少这些链接,则无关紧要。
我还下载并安装了VC ++ redistribute 2015 x64和x86,我仍然收到同样的错误。
还有另一篇文章建议我安装Windows SDK。我为Windows 10做了这个,但仍然是同样的错误。(Missing dlls on 64 bit Win)。
我甚至尝试将dll放在system32文件夹中,但是没有问题
我对如何解决它的想法已经不多了所以如果其他人遇到同样的问题,我们将不胜感激。
对于那些想知道的人,我使用VS2015在win 10上开发。
编辑:
我正在使用的DLL名称为:SLABHIDtoUART.dll
我导入功能的代码如下:
[DllImport("SLABHIDtoUART.dll")]
public static extern int HidUart_GetNumDevices(ref uint numDevices, ushort vid, ushort pid);
这是确切的错误:
System.DLLNotFoundException: Unable to load DLL 'SLABHIDtoUART.dll': The specified module could not be found (Exception from HRESULT: 0x8007007E)
哦,我确实将VS中的编译器设置从任何CPU更改为x86。从技术上讲,我默认没有这个选项,我需要为x86添加一个新选项。在使用x86编译器重新编译之后,该程序似乎仍然无法正常工作。
我甚至移动了SLAB dll所依赖的所有DLL并运行程序,程序仍然没有运行。 (SLAB DLL依赖于hid.dll,setupapi.dll和kernal32.dll)
答案 0 :(得分:2)
我为没有发布此问题的更新而道歉!
我最终弄明白了这个问题。看起来我使用的是64位版本的dll用于32位应用程序。一旦我加载了32位版本的dll,我就可以编译而没有任何问题!