我怎么能使用一个事件触发的COM对象调用一个方法的一个类,在COM对象没有一个回调函数?
5视图(30天)
显示旧的评论
我使用一个com服务器连接测量装置:
ophirApp = actxserver (
“OphirLMMeasurement.CoLMMeasurement”
)
当设备准备读出它触发事件DataReady:
事件(ophirApp)
DataReady =无效DataReady (int32 hDevice int32通道)
当事件被触发时,我想有一个
侦听器,
以来的一个不同的对象调用一个方法
ophirApp尚未建成的回调函数
类似的:
el = addlistener (ophirApp,
“DataReady”
,@handleEvent);
在哪里
@handleEvent不是的一种方法
ophirApp
有办法不?
接受的答案
Abhijeet
2023年4月6日
你好,
创建一个监听器调用一个方法时,不同的对象
DataReady
触发事件,您可以使用“
addlistener”
像你提到的功能。
下面是一个示例代码片段演示:
%创建一个测量装置的实例
ophirApp = actxserver (“OphirLMMeasurement.CoLMMeasurement”);
%定义一个函数处理方法你想触发事件时调用
handleEvent = @myEventHandler;
%为DataReady事件创建一个监听器
侦听器= addlistener (ophirApp,“DataReady”@ (src evt) handleEvent (evt src obj));
% obj是对象的方法你想触发事件时调用
%开始测量
ophirApp.StartAllChannels;
%等待事件被触发
%当事件被触发时,它将调用obj的handleEvent方法
%通过删除侦听器进行清理
删除(听众);
注意:src参数中
handleEvent
方法将
ophirApp
触发事件的对象,
evt
参数将是一个对象包含关于事件的信息。
希望这个解决您的查询。