各位大虾,小弟刚刚学com不久,最近想用把socket封装到com供公司同事使用,但是刚刚开始写,
遇到了问题。我申请了一个接口如下:
[id(1), helpstring("method InitSocket")] HRESULT InitSocket([out]bool *pResult,[in]int iMainVer,[in]int iSubVer);
编译是错误,说bool类型不认识。 我想问问,是不是com的输出参数只支持int*、char*等常规类型?
一开始我建立个进程外的com,不能支持mfc,于是我就建了个进程内的com,可是还是不行,应该不是支不支持mfc的问题。如果我想要接口函数返回一个bool型的值可以吗?应该怎么做?
其实我知道用int*也能达到目的,不过我想以此来了解一下,com接口函数究竟支持哪些输出类型。

解决方案 »

  1.   

    在用向导时,列出的所有类都支持,你想用bool型的,那么你就用这种吧:VARIANT_BOOL或者是VARIANT
      

  2.   

    peacess(和平) 你说的向导是指什么?
      

  3.   

    COM接口使用的是IDL接口语言。要返回bool类型的话,使用VARIANT_BOOL.
      

  4.   

    Refer to 
    Component Development
     Microsoft Interface Definition Language
      SDK Documentation
       Interface Definitions and Type Library
        MIDL Data Types
    in MSDN