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语言的优雅之处
Jul 04 Python
详解Python中with语句的用法
Apr 15 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
用Eclipse写python程序
Feb 10 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
Aug 25 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
对django layer弹窗组件的使用详解
Aug 31 Python
Python运行DLL文件的方法
Jan 17 Python
如何用Matplotlib 画三维图的示例代码
Jul 28 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
python使用glob检索文件的操作
May 20 Python
PyTorch 实现L2正则化以及Dropout的操作
May 27 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
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
php获取用户真实IP和防刷机制的实例代码
2018/11/28 PHP
浅谈PHP进程管理
2019/03/08 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
jQuery 三击事件实现代码
2013/09/11 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
javascript实现前端成语点击验证优化
2020/06/24 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
python实现在sqlite动态创建表的方法
2015/05/08 Python
python树莓派红外反射传感器
2019/01/21 Python
详解Flask前后端分离项目案例
2020/07/24 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
店长助理岗位职责
2013/12/13 职场文书
行政专员岗位职责
2014/01/02 职场文书
怎样写演讲稿
2014/01/04 职场文书
领导干部培训感言
2014/01/23 职场文书
保险公司开门红口号
2014/06/21 职场文书
药店促销活动策划方案
2014/08/24 职场文书
学用政策心得体会
2014/09/10 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
2016年庆祝六一儿童节活动总结
2016/04/06 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python