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入门篇之列表和元组
Oct 17 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python爬虫获取新浪新闻教学
Dec 23 Python
Python列表切片操作实例总结
Feb 19 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
在python中用url_for构造URL的方法
Jul 25 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
哪些是python中web开发框架
Jun 17 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
JpGraph php柱状图使用介绍
2011/08/23 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
PHP基于openssl实现的非对称加密操作示例
2019/01/11 PHP
jquery.lazyload  实现图片延迟加载jquery插件
2010/02/06 Javascript
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
js判断横竖屏及禁止浏览器滑动条示例
2014/04/29 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
vue自定义一个v-model的实现代码
2018/06/21 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
学习python的几条建议分享
2013/02/10 Python
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
Python检测QQ在线状态的方法
2015/05/09 Python
手把手教你使用Python创建微信机器人
2019/04/29 Python
手把手教你pycharm专业版安装破解教程(linux版)
2019/09/26 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
高中的职业生涯规划书
2013/12/28 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
经典毕业生求职信
2014/07/12 职场文书
小学运动会开幕词
2015/01/28 职场文书
高一地理教学工作总结
2015/08/12 职场文书
pyqt5打包成exe可执行文件的方法
2021/05/14 Python
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
Go语言设计模式之结构型模式
2021/06/22 Golang
SQL Server中锁的用法
2022/05/20 SQL Server