问题描述
我以前用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。
但是在64位的openssl中,编译后找不到这些库,只能找到libcrypto.lib和libssl.lib。
我如何摆脱这个问题?
解决方法
只需保持简单即可。让我们从64位openssl重新开始。
转到C:\ Program Files \ OpenSSL-Win64 \(如果下载64位openssl)
然后,您可以看到libssl1_1-x64.dll和其他dll文件。
还有include和lib目录,您可能需要包括它们。
请勿使用链接之类的dll文件。只需单独使用dll或lib文件。