Python编写的com组件发生R6034错误的原因与解决办法


Posted in Python onApril 01, 2013

解决该问题的方法可以为调用本程序的exe文件建立一个合适的manifest文件,指定正确的msvcr90.dll版本即可,具体可参照https://3water.com/article/35219.htm

ps:可以使用mt.exe进行导出或合并manifest资源到exe或者dll文件。

查看manifest的方法:mt -inputresource:pythoncom27.dll;#2 -out:sss.txt

合并manifest到dll的方法:

mt.exe ?manifest MyApp.exe.manifest -outputresource:MyApp.exe;1

or

mt.exe ?manifest MyLibrary.dll.manifest -outputresource:MyLibrary.dll;2

(1 for an EXE, 2 for a DLL.)

ps:2010.12.24

如果是使用c++开发dll,那么使用libcmtd.lib或者libcmt.lib 替换掉 msvcrtd.lib 或 msvcrtd.lib也可以避免这个问题。

ps:内牛碗面

测试regsvr32 pythoncom27.dll一直是失败,即使使用mt嵌入了manifest信息也不行,当我把windows\system32目录下的 pythoncom27.dll和pywintypes27.dll改名后,才行。原来regsvr32默认都是在处理windows\system32 目录下的dll,即使当前目录有也不管。。。。。。无语了。终于出现“已加载***.dll,但没有找到dllregisterserver输入点…..”。看来想dll中嵌入manifest信息是管用的。。下次最好写上目录,如:regsvr32 .\pythoncom27.dll

ps:2010.12.26 完美解决

我使用的python2.7以及截止目前的2.6?3.1版本python的pyd文件根 据python.org的建议(要求),全部没有manifest信息。这是为了更好的在程序运行时根据python.exe提供的crt来运行。 pywin32提供的pythoncom27.dll以及pywintypes27.dll也没有manifest信息。这样一般情况都没有问题,只是当 使用python制作的dll类型的com组件时会发生R6034错误。解决的办法有2个:为调用com组件的exe制作一个manifest文件,指明 msvcr90.dll的依赖;或者把所有使用到的dll以及pyd都嵌入manifest信息。

为什么根本就没有人研究这个信息呢?也许广大的pythoner都不玩com吧 ==||

Python 相关文章推荐
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
在Python中使用Neo4j数据库的教程
Apr 16 Python
开源Web应用框架Django图文教程
Mar 09 Python
Python面向对象基础入门之设置对象属性
Dec 11 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
Dec 10 Python
使用TensorFlow-Slim进行图像分类的实现
Dec 31 Python
pytorch 归一化与反归一化实例
Dec 31 Python
tensorflow之并行读入数据详解
Feb 05 Python
Django models文件模型变更错误解决
May 11 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
Python中用Ctrl+C终止多线程程序的问题解决
Mar 30 #Python
python利用hook技术破解https的实例代码
Mar 25 #Python
利用python获得时间的实例说明
Mar 25 #Python
python 将字符串转换成字典dict
Mar 24 #Python
使用python提取html文件中的特定数据的实现代码
Mar 24 #Python
python 切片和range()用法说明
Mar 24 #Python
python list中append()与extend()用法分享
Mar 24 #Python
You might like
详细介绍:Apache+PHP+MySQL配置攻略
2006/09/05 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
2014/12/18 PHP
破解Session cookie的方法
2006/07/28 Javascript
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
Angularjs CURD 详解及实例代码
2016/09/14 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
javascript实现计算器功能
2020/03/30 Javascript
[45:18]完美世界DOTA2联赛循环赛 PXG vs IO 第二场 11.06
2020/11/09 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
python复制文件的方法实例详解
2015/05/22 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
python tkinter界面居中显示的方法
2018/10/11 Python
深度辨析Python的eval()与exec()的方法
2019/03/26 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
JupyterNotebook 输出窗口的显示效果调整实现
2020/09/22 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
产品促销活动策划书
2014/01/15 职场文书
妇产医师自荐信
2014/01/29 职场文书
《美丽的公鸡》教学反思
2014/02/25 职场文书
英语课外活动总结
2014/08/27 职场文书
2014年学习部工作总结
2014/11/12 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
2019年大学生职业生涯规划书
2019/03/25 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
正则表达式基础与常用验证表达式
2022/06/16 Javascript