我用ATL做了一个EXE组件
包含一个接口,其中[IN]属性的参数是一个带数组的自定义结构,[OUT]参数是DOUBLE类型的指针。请问为什么我编译通过,自注册成功后。用客户 程序访问接口,客户程序崩溃,返回的
错误是HRESULT hr=CoCreateInstanceEx(...)语句,看CSDN,该错误是因为组件不支持我访问的接口。一直困惑中!!!更让我困惑的是,客户程序可以访问到对象,但就是找不到接口。很纳闷,是什么地方的问题,有谁碰到过类似问题吗?恳请帮忙!!!

解决方案 »

  1.   

    错误信息应当是接口参数调用错误吧,如果把自定义参数改掉就应当可以了,
    如果要传递数组的化最好用安全数组,是variant类型中的一种
    variant var;
    var.vt=VT_ARRAY;
    具体使用可以参照MSDN
      

  2.   

    在进程外组件使用IUnknown接口,一定要注册代理,使用标准调度:
    mk /f *ps.mk
    regsvr32 *ps.dll
    然后你就可以用类似进程内组件的方法调用你的进程外组件了。