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实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
Python访问纯真IP数据库脚本分享
Jun 29 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
Jan 05 Python
使用python 3实现发送邮件功能
Jun 15 Python
设置python3为默认python的方法
Oct 31 Python
Django Rest framework之认证的实现代码
Dec 17 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
Django如何防止定时任务并发浅析
May 14 Python
python实现静态服务器
Sep 05 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
python非标准时间的转换
Jul 25 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 COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
php操作mongoDB实例分析
2014/12/29 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
动态加载iframe
2006/06/16 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
深入理解Vue.js源码之事件机制
2017/09/27 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
python的即时标记项目练习笔记
2014/09/18 Python
python创建关联数组(字典)的方法
2015/05/04 Python
用python生成1000个txt文件的方法
2018/10/25 Python
python pyheatmap包绘制热力图
2018/11/09 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
软件测试面试题
2015/10/21 面试题
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
使用Golang的channel交叉打印两个数组的操作
2021/04/29 Golang
详解MongoDB的条件查询和排序
2021/06/23 MongoDB