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的反射机制
Jun 28 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
Pandas库之DataFrame使用的学习笔记
Jun 21 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
Python matplotlib模块及柱状图用法解析
Aug 10 Python
python3实现飞机大战
Nov 29 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
Python几种酷炫的进度条的方式
Apr 11 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/02 无线电
改进的IP计数器
2006/10/09 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
2014/08/06 PHP
PHP 无限级分类
2017/05/04 PHP
jquery 插件学习(六)
2012/08/06 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JavaScript实现仿淘宝商品购买数量的增减效果
2016/01/22 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
微信小程序 wx.request(接口调用方式)详解及实例
2016/11/23 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
小程序自定义日历效果
2018/12/29 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
Python实现文件复制删除
2016/04/19 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
python线程中同步锁详解
2018/04/27 Python
详解python持久化文件读写
2019/04/06 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
护士自我评价
2014/02/01 职场文书
《乞巧》教学反思
2014/02/27 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
新手上路标语
2014/06/20 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书