您好,请问如何从ATL的COM中抛出一个异常?谢谢。
我用CComCoClass::Error(_T("Can you see me?"),IID_IXX ,12);
在外面用VB.net的try...catch...无法捕捉,谢谢。

解决方案 »

  1.   

    这个异常不通用。使用方法的返回值,那么会转换成相应的vb.net可以捕获的异常。
      

  2.   

    回复:akirya
    您是指将return S_OK;改为返回一个非0的数?可是我改了后在VB里还是catch不到,谢谢!
      

  3.   

    不是非0
    你查查定义 E_FAIL之类的,E开头的
      

  4.   

    如果是进程外的COM组件,在客户端是无法捕捉到异常的。楼上说的返回HRESULT类型是指函数的返回值,根据返回值做一些判断,并不是用来当异常catch的。