python 调用CANoe报错, This COM object does not support events.

问题一

在加载测试testModule时,DispatchWithEvents处理com对象事件报错。

在这里插入图片描述

self.Events = DispatchWithEvents(tm, CanoeTestEvents)

解决

🦁 在帮助文档中,TSTestModule对象支持事件触发,并且尝试了所有版本的接口,所以代码没有问题。
🦁 最后找到解决方法:删除makepy.py运行时注册CANoe Type Library创建的Python文件,Temp\gen_py
在这里插入图片描述

🦁需要注意,删除文件后,不再需要转换对象。但是,CANoe.Application 对象需要使用DispatchDispatchEx进行实例化。

错误原因

之前电脑装了很多版本,就算把其他版本删了com对象也没有读到正确的版本,删了过后再从新加载读取到正确版本。

问题二

调用COM对象接口时,会有不支持此属性的错误,用CastTo函数强制转化成最新版本接口。

testenv = CastTo(testenv, "ITestEnvironment2")

canoe所有接口可以在canoe15\Exec32\COMdev\CANoe.h中查看,接口的属性方法也可以查看。
在这里插入图片描述
在这里插入图片描述

错误原因

接口有很多版本,有的脚本没有用最新的,就会出现不支持某些属性。转换成最新的接口额版本呢就可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值