佚名通过本文主要向大家介绍了有请老梁,有请主角儿,有请主角,官场红人 女领导有请,有请老梁看电影等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 有请高手解决COM对象的Fire问题
描述:
描述:
用VC写了一个COM Server,用VB作COM客户端调用该COM Server
在处理通知的时候遇到了问题,不知道问题的原因在哪儿。
问题的详细描述如下:
VB VC
1 add(x,y) as z add(x,y,z)
onAdd(z) {
z = x + y;
Fire(z);//一切正常
}
Timer()
{
Fire(z);//出错
//跟踪进去发现Invoke调用的所有参数的内存地址是一样的。pDispatch(0x0013c240),&disp(0x0012f410)
}
处理逻辑:VB中定义了一个add函数,当用户调用add函数的时候,VC计算结果,并返回给用户,同时Fire一个通知给VB。然后定时器启动,每次每隔1分钟发一次通知给VB。
在add函数中调用Fire可以发出通知,VB能正确收到,而在Timer()中调用Fire发出通知,则VB出错并退出。