【发布时间】:2020-08-26 04:01:50
【问题描述】:
我之前编译过 32 位的 openssl 源代码并在我的 c++ 项目中使用它。但由于某些原因,我想让我的程序为 64 位,并在程序启动时引用我创建的 dll 时出错。
我的 c++ 程序 A.dll 使用 openssl 库。之前在 x86 中使用它没有任何问题,B.dll 使用的是我自己编译的 openssl 32bit
System.DllNotFoundException:无法加载 DLL 'A.dll' 或其依赖项之一:找不到指定的模块。 (0x8007007E)
我在 B.exe 中使用 A.dll。 B.exe 在 c# 中,在我的电脑上使用 x86 A.dll 时可以,但是当将所有 dll 和 b.exe 复制到另一台计算机时,它将无法工作并出现上述错误,因此决定以 64 位编译 openssl,在 A.dll 中使用 openssl 64bit 时,在 c++ 中出现链接错误。
在 x86 之前,我引用了 ssleay32.lib 和 libeay32.lib。
但是在 64bit openssl 编译时找不到这些库,只有 libcrypto.lib 和 libssl.lib。
我怎样才能摆脱这个问题?
【问题讨论】:
标签: c++ openssl dependencies 64-bit dllnotfoundexception