IDL 定义中方法 HRESULT XXX([out,retval]) 如何返类类型的指针

umbrook 2007-10-10 04:48:53
1.在Vc ATL中,IDL 定义中方法 HRESULT XXX([out,retval]) 如何返回自定义类型的指针
2.比如我有一个类CNode.
CNode 定义如下:
#include <string>
Using namespace std;
Class CNode
{
Public :
CNode();
~CNode();
String strPrint;
}
CNode::CNode():strPrint(“Hi”)
{}
CNode::~CNode()

{}
IDL描述如下:
[id(7), helpstring("method MISet")] HRESULT Test ( [in] ULONG *a1,[out,retvalCNode **pVal);
方法实现如下:
HRESULT Test ( [in] ULONG *a1,[out,retval]CNode **pVal)
{
CNode *p = NULL;
P = new [*a1];
pVal = &p;
Return S_OK;
}
该方法MISet通过得到一个整数n,然后改方法实例化n个Cnode对象数组。
VC的编译器告诉我CNode不合法,
请问
我想返回这对象数组的头指针,请问该怎么写呢?
谢谢。
...全文
203 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用void**
或者在idl文件中声明一个类,不定义.
禽兽v5 2007-10-12
  • 打赏
  • 举报
回复
该接口对应的coclass的.h文件里包含了CNode.h没?

要不,用void **来返回。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧