首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ATL:我想创建一个coclass,它可以用作我的类中方法的参数。为什么我不能让它工作?

ATL:我想创建一个coclass,它可以用作我的类中方法的参数。为什么我不能让它工作?
EN

Stack Overflow用户
提问于 2009-03-30 17:48:30
回答 1查看 776关注 0票数 0

我已经使用ATL创建了一个COM对象。我想创建一个可以从方法返回并作为参数传入的新对象。我已经创建了coclass,但是我不知道如何添加一个接受它作为参数的方法。

我得到的错误是MIDL2025:语法错误:需要"IgBrush“附近的类型规范。我使用的是Visual Studio 2008。

当我添加一个枚举时,我记得我花了很多时间使用IDL,并最终让它接受枚举作为参数。对于coclass就没有这么好的运气了。

根据ATL向导提供的默认生成的代码,需要执行哪些步骤才能使其正常工作?(即我要把什么移动到哪里?为什么?)

EN

回答 1

Stack Overflow用户

发布于 2009-03-30 18:41:47

如果您将您正在使用的IDL放入其中,将会有所帮助。

要在MIDL中使用类型,必须先声明它。

代码语言:javascript
复制
interface IMyFactory:IDispatch
{
  ...
};

interface IMyObject:IDispatch
{
  HRESULT SetFactory([in] IMyFactory * state);
}

但我建议你传递像IUnknown*或IDispach*这样的参数(如果它们是合适的),那么最后一个资源将是使用VOID*作为参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/698273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档