原文地址:http://blog.csdn.net/boren31/article/details/8778504
问题年年有,今年特别多。
开发环境:
Windows XP sp3
Visual C# 2010
Visual C++ 2008 (dll)
程序是用C#编写的; dll供应商给的,没有源代码,环境是VC++2008
用C#写了个调用C++ dll动态库程序,却报 System.DllNotFoundExceion 异常。
微软官方技术论坛给出的解释是: 当未找到在 DLL 导入中指定的 DLL 时所引发的异常。
反思一二:
重装.net framework 4.0 ,问题照旧,不是答案;
查找资料,DLL依赖VC++ 运行时库;安装运行时库,从2005到2010,百回千转,问题依旧。
最后,偶然发现,使用Visual Dependency , 可以看到:
发现正是缺少LIBUSB0.dll动态库,
程序加上LIBUSB0.dll后,一切OK。
注意:libusb0.dll有两个版本,X86与X64;
综上,任凭你头痛没有解药时,不妨找找微软本身工具,可能给另一个思路;
君子性非异也,善假于物也!
其实就是vc++编译器的运行时库的问题