Visual studio 2008 带OpenSSL的Axis2C-无OpenSSL\u APPLINK错误
我在VC++2008中使用Axis2C和OpenSSL访问https Web服务。 无论何时进行实际通信,我都会收到一个运行时致命异常: OPENSSL\u上行链路:没有OPENSSL\u APPLINK 我读到有几件事你应该做,比如在applink.c文件中链接到我的应用程序。我这样做了,(使用extern“C”),我还称之为CRYPTO_malloc_init。这两种方法都是无效的。。我有点迷路了 我还应该检查什么?还有,有人知道为什么axis2c有时会写入axis.log文件,有时则不写入 谢谢Visual studio 2008 带OpenSSL的Axis2C-无OpenSSL\u APPLINK错误,visual-studio-2008,web-services,visual-c++,openssl,axis2c,Visual Studio 2008,Web Services,Visual C++,Openssl,Axis2c,我在VC++2008中使用Axis2C和OpenSSL访问https Web服务。 无论何时进行实际通信,我都会收到一个运行时致命异常: OPENSSL\u上行链路:没有OPENSSL\u APPLINK 我读到有几件事你应该做,比如在applink.c文件中链接到我的应用程序。我这样做了,(使用extern“C”),我还称之为CRYPTO_malloc_init。这两种方法都是无效的。。我有点迷路了 我还应该检查什么?还有,有人知道为什么axis2c有时会写入axis.log文件,有时则不写入
Roey.这可能是由于编译标志。 下面介绍如何在Windows上编译Axis2c+OpenSSL 64位 使用OpenSSL创建Axis2c 64位 版本:
- Axis2c 1.6.0
- OpenSSL 1.0.0d
- Perl 5(64位版本)
cd <openssl_root_dir> (e.g. C:\tmp\openssl-1.0.0b)
perl Configure VC-WIN64A
ms\do_win64a
nmake -f ms\ntdll.mak
cd out32dll
..\ms\test
编译Axis2C
cd\build\win32
nmake安装
所有必要的文件都被保存到以下文件夹中:
\构建\部署
2个OpenSSL dll文件(libeay32.dll、ssleay32.dll)可能会手动复制到deploy\lib子文件夹。这可能是由于编译标志。 下面介绍如何在Windows上编译Axis2c+OpenSSL 64位 使用OpenSSL创建Axis2c 64位 版本:
- Axis2c 1.6.0
- OpenSSL 1.0.0d
- Perl 5(64位版本)
cd <openssl_root_dir> (e.g. C:\tmp\openssl-1.0.0b)
perl Configure VC-WIN64A
ms\do_win64a
nmake -f ms\ntdll.mak
cd out32dll
..\ms\test
编译Axis2C
cd\build\win32
nmake安装
所有必要的文件都被保存到以下文件夹中:
\构建\部署
2个OpenSSL dll文件(libeay32.dll,ssleay32.dll)可能会被手动复制到deploy\lib子文件夹。我使用OpenSSL 1.0.1e(从为Win32预编译)时遇到类似问题 我不确定根本原因是什么,但当我使用VC的静态库而不是DLL库重建应用程序时,问题就消失了 换句话说,这里的这个库对我来说失败了:
C:\OpenSSL-Win32\lib\libeay32.lib
但是再次链接这个库成功了
C:\OpenSSL-Win32\lib\VC\static\libeay32MD.lib
这可能与其他库的不兼容性有关(请参阅)。据我所知,我的应用程序只使用了libeay32库
此外,它还与PEM的处理有关。我能够生成RSA密钥,但当我针对DLL而不是静态链接时,我无法编写它。我遇到了类似的问题,使用OpenSSL 1.0.1e(从中为Win32预编译) 我不确定根本原因是什么,但当我使用VC的静态库而不是DLL库重建应用程序时,问题就消失了 换句话说,这里的这个库对我来说失败了:
C:\OpenSSL-Win32\lib\libeay32.lib
但是再次链接这个库成功了
C:\OpenSSL-Win32\lib\VC\static\libeay32MD.lib
这可能与其他库的不兼容性有关(请参阅)。据我所知,我的应用程序只使用了libeay32库
此外,它还与PEM的处理有关。我能够生成一个RSA密钥,但当我与DLL链接而不是静态链接时,我无法编写它。根据:
根据0.9.8,对于.dll消除了上述限制。OpenSSL
.dll使用特定的运行时选项编译[我们坚持
default/MD]可以与使用不同方法编译的应用程序一起部署
选项,甚至不同的编译器。但是有一个陷阱!而不是
重新编译OpenSSL toolkit,正如您必须使用之前的
版本,您必须使用编译器和/或
你可以选择。该代码段将按以下方式安装:
/include/openssl/applink.c并应添加到
您的应用程序项目,或者干脆将-d包含在
您的应用程序源文件。未能将此垫片模块连接到
您的应用程序显示为致命的“无OPENSSL\u Applink”
运行时错误。在这种情况下,应明确提醒:
[混合编译器选项]添加CRYPTO_malloc_init同样重要
在第一次调用OpenSSL之前
因此,只需将applink.c包含在您的项目中,即可享受 根据:
根据0.9.8,对于.dll消除了上述限制。OpenSSL
.dll使用特定的运行时选项编译[我们坚持
default/MD]可以与使用不同方法编译的应用程序一起部署
选项,甚至不同的编译器。但是有一个陷阱!而不是
重新编译OpenSSL toolkit,正如您必须使用之前的
版本,您必须使用编译器和/或
你可以选择。该代码段将按以下方式安装:
/include/openssl/applink.c并应添加到
您的应用程序项目,或者干脆将-d包含在
您的应用程序源文件。未能将此垫片模块连接到
您的应用程序显示为致命的“无OPENSSL\u Applink”
运行时错误。在这种情况下,应明确提醒:
[混合编译器选项]添加CRYPTO_malloc_init同样重要
在第一次调用OpenSSL之前
因此,只需将applink.c包含在您的项目中,即可享受 +1表示“PEM处理”。这让我意识到我指向的是一个不存在的证书文件,这使得错误消失了+1表示“PEM处理”。这让我意识到我指向的是一个不存在的证书文件,这使得错误消失了!