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 面向对象 成员的访问约束
Dec 23 Python
Python 爬虫的工具列表大全
Jan 31 Python
对pandas中to_dict的用法详解
Jun 05 Python
python获取微信小程序手机号并绑定遇到的坑
Nov 19 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
Python3 assert断言实现原理解析
Mar 02 Python
python中的yield from语法快速学习
Nov 06 Python
python3从网络摄像机解析mjpeg http流的示例
Nov 13 Python
python用分数表示矩阵的方法实例
Jan 11 Python
解决pytorch 保存模型遇到的问题
Mar 03 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 form 表单传参明细研究
2009/07/17 PHP
浅谈Laravel队列实现原理解决问题记录
2017/08/19 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
JS 作用域与作用域链详解
2015/04/07 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
基于JavaScript表单脚本(详解)
2017/10/18 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
Python装饰器decorator用法实例
2014/11/10 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
18个Python脚本可加速你的编码速度(提示和技巧)
2019/10/17 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
班主任2015新年寄语
2014/12/08 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
葬礼主持词
2015/07/02 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
Python保存并浏览用户的历史记录
2022/04/29 Python
基于redis+lua进行限流的方法
2022/07/23 Redis