可以返回什么类型的指针   我现在返回IUnknown*和IDispatch*为NULL的时候好这呢
只要不是空  就是内存访问冲突  麻烦大哥大姐们 帮帮忙啊IUnknown*   CDateManageCtrl::GetSocketDate() 

        return   (IUnknown*)(&m_vecDate[0]); 
} DISP_FUNCTION(CDateManageCtrl, "GetSocketDate", GetSocketDate, VT_UNKNOWN, VTS_NONE)[id(12)] IUnknown* GetSocketDate();m_vecDate   是个vector   现在绝对有值 

解决方案 »

  1.   

    不要试图返回指针之类的东西,这与com的设计原则相违背。
    返回值
      

  2.   

    那com中的数据怎么和外面交互呢   小弟第一次用  也不是很清楚 
    我只是想在那外面得到我vector的值   有什么好办法吗?
      

  3.   

    我 也是第一次做这个东西  现在我想得到vector里的值 有什么好的办法吗?
      

  4.   

    还有,如果需要返回,则idl的接口是这样写的
    [propget, id(12)]   HRESULT GetSocketDate([out, retval] IUnknown** pVal); 
      

  5.   

    [propget,   id(12)]       HRESULT   GetSocketDate([out,   retval]   IUnknown**   pVal);  这样就又不认了
      

  6.   

    弄个在idl里认识的数据类型,可以先声明一个struct
    最好不要导出指针,而是导出值
      

  7.   

    在COM中,应该只返回VARIANT和BSTR,但我在估OCX的时候,也会返回指针,这样C语言方便调用,但一定还要做一个函数版本返回VARIANT,这样VB之类的方便调用。