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实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
浅谈机器学习需要的了解的十大算法
Dec 15 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
Python3实现购物车功能
Apr 18 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
Python BeautifulReport可视化报告代码实例
Apr 13 Python
Spark处理数据排序问题如何避免OOM
May 21 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
Python基础之tkinter图形化界面学习
Apr 29 Python
python疲劳驾驶困倦低头检测功能的实现
Apr 04 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
基于header的一些常用指令详解
2013/06/06 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
jquery之empty()与remove()区别说明
2010/09/10 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
python实现简单的文字识别
2018/11/27 Python
Python list列表中删除多个重复元素操作示例
2019/02/27 Python
python3使用matplotlib绘制条形图
2020/03/25 Python
Dlib+OpenCV深度学习人脸识别的方法示例
2019/05/14 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
Python input函数使用实例解析
2019/11/22 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
文员个人的求职信范文
2013/09/26 职场文书
项目考察欢迎辞
2014/01/17 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
教堂婚礼主持词
2014/03/14 职场文书
促销活动总结报告
2014/04/26 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js