帮忙翻译成C++

nickgg 2009-09-11 02:41:53
function CreateObject(const ClassID: TGUID): IDispatch;
var
Unk: IUnknown;
begin
CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER, IUnknown, Unk);
Result := Unk as IDispatch;
end;
...全文
116 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hemiya 2009-09-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mjp1234airen4385 的回复:]
我翻译错了。
IDispath CreateObject(const TGUID ClassID)
{
  IUnknown Unk;
  CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER, IUnknown, Unk);
  return (IDispatch) Unk;
}
[/Quote]


IDispath CreateObject(const TGUID &ClassID) // ClassID为引用
{
IUnknown Unk;
// CoCreateInstance的参数根据CreateObject的函数返回值CoCreateInstance
// 最后一个参数应该是Unk的地址
CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER, IUnknown, &Unk);
return (IDispatch) Unk;
}

willflyz 2009-09-11
  • 打赏
  • 举报
回复
恐怕不行吧,IUnknown,IDispatch这些都是属于Delphi的接口类,C++没有这些接口类
lght 2009-09-11
  • 打赏
  • 举报
回复
CoCreateInstance windows API
直接翻MSDN
haitao 2009-09-11
  • 打赏
  • 举报
回复
CoCreateInstance的参数如果有var的(如var x:Txxx),转为c需要加上&(如&x)
mjp1234airen4385 2009-09-11
  • 打赏
  • 举报
回复
我翻译错了。
IDispath CreateObject(const TGUID ClassID)
{
IUnknown Unk;
CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER, IUnknown, Unk);
return (IDispatch) Unk;
}

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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