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基础教程之udp端口扫描
Feb 10 Python
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
Python socket实现简单聊天室
Apr 01 Python
基于Pandas读取csv文件Error的总结
Jun 15 Python
Python全局变量与局部变量区别及用法分析
Sep 03 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
Jun 17 Python
python找出因数与质因数的方法
Jul 25 Python
Python底层封装实现方法详解
Jan 22 Python
python中把元组转换为namedtuple方法
Dec 09 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
Python快速优雅的批量修改Word文档样式
May 20 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实现蜘蛛访问日志统计
2013/07/05 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
Nigma vs Liquid BO3 第一场2.13
2021/03/10 DOTA
网页里控制图片大小的相关代码
2006/06/25 Javascript
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
vue-cli2.9.3 详细教程
2018/04/23 Javascript
创建echart多个联动的示例代码
2018/11/23 Javascript
vue中nextTick用法实例
2019/09/11 Javascript
Vue实例的对象参数options的几个常用选项详解
2019/11/08 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
Python判断字符串与大小写转换
2015/06/08 Python
常见python正则用法的简单实例
2016/06/21 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
python+playwright微软自动化工具的使用
2021/02/02 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
技术总监个人的自我评价范文
2013/12/18 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
安全生产专项整治方案
2014/05/06 职场文书
安全口号大全
2014/06/21 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers