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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
学习python 之编写简单乘法运算题
Feb 27 Python
教你学会使用Python正则表达式
Sep 07 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
利用pyinstaller将py文件打包为exe的方法
May 14 Python
对Python 检查文件名是否规范的实例详解
Jun 10 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
如何通过python检查文件是否被占用
Dec 18 Python
python实现简单的学生管理系统
Feb 22 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
Python编码时应该注意的几个情况
2013/03/04 Python
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python实现简单的语音识别系统
2017/12/13 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
用python生成1000个txt文件的方法
2018/10/25 Python
PHP统计代码行数的小代码
2019/09/19 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
2020/01/16 Python
python 控制台单行刷新,多行刷新实例
2020/02/19 Python
python3爬虫中多线程进行解锁操作实例
2020/11/25 Python
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
高三语文教学反思
2014/01/15 职场文书
学习决心书
2014/03/11 职场文书
搞笑征婚广告词
2014/03/17 职场文书
医学检验专业自荐信
2014/09/18 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS