描述:
各位大虾,小弟刚刚学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:
用VT_BOOL
解决方案2:在用向导时,列出的所有类都支持,你想用bool型的,那么你就用这种吧:VARIANT_BOOL或者是VARIANT
解决方案3: Refer to
Component Development
Microsoft Interface Definition Language
SDK Documentation
Interface Definitions and Type Library
MIDL Data Types
in MSDN
COM接口使用的是IDL接口语言。要返回bool类型的话,使用VARIANT_BOOL.