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实现发送email的几种常用方法
Aug 18 Python
python抓取最新博客内容并生成Rss
May 17 Python
python抓取文件夹的所有文件
Feb 27 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
python 遍历目录(包括子目录)下所有文件的实例
Jul 11 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
python之mock模块基本使用方法详解
Jun 27 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 Python
Anaconda详细安装步骤图文教程
Nov 12 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防止post重复提交数据的简单例子
2014/06/07 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
[JS]点出统计器
2020/10/11 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
javascript中的取反再取反~~没有意义
2014/04/06 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
基于Cookie常用操作以及属性介绍
2017/09/07 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
详解Vue2的diff算法
2021/01/06 Vue.js
[05:23]DOTA2-DPC中国联赛2月1日Recap集锦
2021/03/11 DOTA
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
使用python 3实现发送邮件功能
2018/06/15 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
python如何随机生成高强度密码
2020/08/19 Python
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
运动会方队口号
2014/06/07 职场文书
员工表扬信怎么写
2015/05/05 职场文书