COM菜鸟求助:VB调用ATL COM的
COM接口的返回值是HRESULT,成功时返回S_OK,失败时返回S_FALSE。
可是在VB中调用接口时,没有返回值了,这个值到哪儿去了?
百度了一下,说是返回S_FALSE时会触发异常,可是我用下面的代码走不到异常处理分支中去:
IIterface.Method(var)
On Error Go To Line
Line:
MsgBox("error")
为什么呢,help !
[解决办法]
还正在学习VB,不太懂。
怎么不到VB去问问。
[解决办法]
On Error Go To Line
IIterface.Method(var)
On Error要在前面。
另外,这个问题在vb专区问更恰当。
[解决办法]
如果不触发on error,那么应该有返回值。
去vb专区吧。
[解决办法]
你调用成功了,会有啥异常???
IIterface.Method(var)
On Error Go To Line
Line:
MsgBox("error")
改为:
if IIterface.Method(var)=S_FALSE then goto Line ..... exit subLine: MsgBox("error")
[解决办法]
顶楼上
ATL为了保证接口函数都是虚的,并返回为HRESULT
就将函数返回值都处理成函数参数的一部分