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实现连接mongodb的方法
May 08 Python
Python中用sleep()方法操作时间的教程
May 22 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
Feb 13 Python
Python元字符的用法实例解析
Jan 17 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
修改Pandas的行或列的名字(重命名)
Dec 18 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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 curl 伪造IP来源的实例代码
2012/11/01 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
thinkPHP模板中函数的使用方法示例
2016/11/30 PHP
PHP实现验证码校验功能
2017/11/16 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
JavaScript中的Web worker多线程API研究
2014/12/06 Javascript
jQuery实现的图文高亮滚动切换特效实例
2015/08/10 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
mac下的nodejs环境安装的步骤
2017/05/24 NodeJs
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
2015/04/08 Python
Python中协程用法代码详解
2018/02/10 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
python实现网页录音效果
2020/10/26 Python
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
商务专员岗位职责
2013/11/23 职场文书
高中生逃课检讨书
2014/10/10 职场文书
三年级学生期末评语
2014/12/26 职场文书
公司联欢会主持词
2015/07/04 职场文书
SpringBoot整合阿里云视频点播的过程详解
2021/12/06 Java/Android