某些计算机上.NET应用程序中C++库的DllNotFoundException
DllNotFoundException for C++ library from .NET app on some computers
我们有一个.NET应用程序,它通过[DllImport]使用C++库。除了3台计算机外,它在许多计算机(成千上万的客户)上都能正常工作。它们都安装了Windows 10(其他Windows 10平台运行良好)。
例外情况是:
System.DllNotFoundException: Unable to load DLL 'Helper.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
此dll与主可执行文件放在同一文件夹中。已经做了什么来修复:
将DLL放入system32文件夹;
安装了不同版本的vc-rest;
- 以管理员身份运行
结果是一样的。
有什么想法吗,伙计们?
提前感谢!
不要将DLL放在系统目录中。你不应该把文件放在那里。将DLL与可执行文件放在同一目录中。
如果这样做,系统报告DllNotFoundException
,则意味着找不到DLL的某个依赖项。接下来,您需要找出依赖项是什么,并确保它们都得到满足。
您可以使用像依赖关系查看器这样的工具来检查依赖关系,但实际上最好的方法是转到源代码。如果是第三方库,则提供库的文档;如果您自己构建了DLL,则直接从源代码和编译选项获取文档。
相关文章:
- c++库的公共头文件中应该包含什么
- 序列化,没有库的整数,得到奇怪的结果
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 针对遗留库的链接:来自预制makefile的-lgfortranbegin
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- Android Studio 中带有静态库的原生C++代码
- 如何在OpenSSL库的名称中添加后缀'd'?
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 为什么提升图库的 read_graphviz() 函数会改变节点的索引
- 在Visual Studio C++项目中包含源库的正确方法是什么?
- 良好做法:如何定义用于编译的外部库的路径
- 使用 CImg 库的 std::min 和 std::max 的编译问题
- 使用指针在存在特征库的情况下动态分配 c++ 中的矩阵
- CMake:我们可以为一组不形成可执行文件或库的特定文件指定包含目录吗?
- 将共享库的搜索路径更改为生成文件中提供的 rpath
- 编译依赖于 QTCore 库的 WASM
- 在不使用字符串库的情况下输入字符*
- 如何公开库的枚举,以便我的代码不必键入整个命名空间来使用该枚举?
- 如何在公共头文件中向库的用户公开枚举,同时在内部使用它?
- 获取 clang++:错误:在编译文件系统库的代码时