没有OPENSSL_Applink运行时错误

时间:2014-06-09 23:11:15

标签: visual-c++ openssl

我的问题更新如下:我正在尝试做某事 - 任何事情 - 让d2i_PKCS12_fp()工作。我现在用一个新的dll来调用它 用/ MD编译。没有变化。这是我的代码:

#include <openssl\applink.c>
CRYPTO_malloc_init();
OpenSSL_add_all_algorithms();
fptr = fopen(p12_file, "rb");
if (fptr == NULL) return(FALSE);
d2i_PKCS12_fp(fptr, &p12_cert);
fclose(fptr);

对d2i_PKCS12_fp()的调用始终生成no OPENSSL_Applink运行时 错误。如果有人能够对此有所了解,我将不胜感激。

---原始问题----

我试图在Windows DLL中使用d2i_PKCS12_fp()API调用 使用多线程(/ MT)运行时库编译。在这个电话我 得到运行时错误&#34; OPENSSL_Uplink(03CE1000,08):没有OPENSSL_Applink&#34;。 从我看到的关于这个错误的讨论,我想我可以解决它 添加&#34; applink.c&#34;到我的项目,并调用CRYPTO_malloc_init()。 但是这没有效果。使用/ MT导致这个吗?这将是 由于项目的其他组成部分,很难改变这一点。我有 在这个项目中使用HMAC和SHA256 API没有问题。如果是 只是文件I / O导致问题,有没有办法,我可以 我自己读取.p12文件,然后按顺序将缓冲区传递给OpenSSL 初始化PKCS12结构?我正在使用MSVC 2010。

2 个答案:

答案 0 :(得分:1)

在Windows上使用OpenSSL库为TLS编译C ++ Qt项目时,我遇到了相同的运行时错误。发布版本运行正常,但调试版本显示运行时错误: OPENSSL_Uplink(0F7D26B8,08):no OPENSSL_Applink

此错误的原因是调用 ERR_print_errors_fp(stderr)函数。 在评论ERR_print_errors_fp后,一切正常。

答案 1 :(得分:0)

我有一个类似的问题,我在网上看到#include <openssl\applink.c>缺失,但它没有解决问题。 我的问题是我在调试模式下工作,OpenSSL在发布模式下内置重新构建 调试(使用perl Configure debug-VC-WIN32)中的OpenSSL修复了此问题。 希望这能帮到你!