解决Python "no OPENSSL_Applink"错误
来源:互联网 发布:vb datagrid 列不显示 编辑:程序博客网 时间:2024/05/17 02:43
Windows平台在使用了Python的M2Crypto函数库时,当在使用 X509.load_cert()等涉及到bio模块相关读写操作的时候就会出现这个错误,上网查了下,大概知道了出错原因,因为BIO模块在读写时会调用libeay32.lib库里的bio_new_fp函数,而调用此函数会涉及到本次的主角OPENSSL_Uplink函数(在openssl库uplink.c文件中定义)此函数会通过这样的方式获取一个句柄:
h = GetModuleHandle(NULL);MSDN里是这样说的:If this parameter is NULL, GetModuleHandle returns a handle to the file used to create the calling process (.exe file).
GetModuleHandle函数传递一个空值,获取程序即exe进程的句柄,而不是dll自身的句柄,再调用GetProcAddress函数获取程序导出的OPENSSL_Applink函数:
applink = (void **(*)())GetProcAddress(h, "OPENSSL_Applink");
由此可见要想成功调用OPENSSL_Applink函数那么就必须在Python主程序中先定义并导出此函数,因为代码开源可以直接下载python的源码,将openssl工程中applink.c文件复制到python工程的头文件目录里,然后定位到python工程的python.c文件,引入刚才添加的文件,applink.c文件里已经将函数导出了,接下来直接编译就行了
然后只要单独编译Python工程(即python.exe),生成成功后python.exe的文件用Dependency查看,发现多了一个Openssl_AppLink导出函数,表明函数导出成功。
最后将生成的python.exe替换即可,问题解决。
64位下载地址:点击打开链接
1 0
- 解决Python "no OPENSSL_Applink"错误
- Openssl no OPENSSL_Applink 错误解决
- no OPENSSL_Applink 的错误
- OPENSSL_Uplink no OPENSSL_Applink 错误分析
- OPENSSL_Uplink(0098E000,07): no OPENSSL_Applink 错误分析
- SM2算法第十七篇: no OPENSSL_Applink 的错误
- openssl编程出现no OPENSSL_Applink
- python import no module错误解决
- OPENSSL_Uplink(0F5D2000,08): no OPENSSL_Applink
- openssl运行出现 no OPENSSL_Applink解决办法
- 解决Python提示No module named 'pkg_resources'错误
- 解决Python提示No module named 'pkg_resources'错误
- 一种OPENSSL_Uplink(100F2010,05): no OPENSSL_Applink解决方法
- 解决"No CurrentSessionContext configured"错误
- Python:no encoding declared 错误
- Python:no encoding declared 错误
- python ImportError: No module named 的错误解决思路和方法
- debian上解决ImportError: No module named OpenSSL错误(python)
- HDU 1102 最小生成树
- Cocos2d-x中,Speed类的使用
- [深入Python]__new__和__init__
- PIC之中断
- Mysql 会导致锁表的语法
- 解决Python "no OPENSSL_Applink"错误
- 笔记本惠普CQ14-a003TX加装内存和SSD固态硬盘
- javascript函数
- Python 技巧:@classmethod 修饰符
- Python和Singleton (单件)模式
- 输入搜索词出现提示信息供选择
- 2016阿里校招算法工程师笔试
- MAC上随时切换PYTHON版本
- VS2012验证控件出现WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping的问题