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 相关文章推荐
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
python中将\\uxxxx转换为Unicode字符串的方法
Sep 06 Python
对Python 语音识别框架详解
Dec 24 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Python pip配置国内源的方法
Feb 14 Python
python中setuptools的作用是什么
Jun 19 Python
Python创建临时文件和文件夹
Aug 05 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 Python
python 如何读、写、解析CSV文件
Mar 03 Python
pytorch model.cuda()花费时间很长的解决
Jun 01 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
咖啡知识 除了喝咖啡还有那些知识点
2021/03/06 新手入门
体育彩票排列三组选三算法分享
2014/03/07 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
php实现学生管理系统
2020/03/21 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
Javascript事件实例详解
2013/11/06 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
js查找节点的方法小结
2015/01/13 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[00:14]护身甲盾
2019/03/06 DOTA
详解JavaScript编程中的window与window.screen对象
2015/10/26 Python
Python实现的建造者模式示例
2018/08/06 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
python判断字符串或者集合是否为空的实例
2019/01/23 Python
Python中有几个关键字
2020/06/04 Python
python爬虫智能翻页批量下载文件的实例详解
2021/02/02 Python
CSS3属性background-size使用指南
2014/12/09 HTML / CSS
办公文员的工作岗位职责
2013/11/12 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python