Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ ATL:我想创建一个coclass,可以用作类中方法的参数。为什么可以';我不能让它工作吗?_C++_Parameters_Atl - Fatal编程技术网

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

C++ ATL:我想创建一个coclass,可以用作类中方法的参数。为什么可以';我不能让它工作吗?,c++,parameters,atl,C++,Parameters,Atl,我已经使用ATL创建了一个COM对象。我想创建一个可以从方法返回并作为参数传入的新对象。我已经创建了coclass,但是我不知道如何添加一个方法来接受它作为参数 我得到的错误是MIDL2025:语法错误:需要一个接近“IgBrush”的类型规范。我正在使用VisualStudio2008 当我添加一个枚举时,我记得我经常使用IDL,最终使它接受枚举作为参数。没有这样的运气 根据ATL向导提供的默认生成代码,需要哪些步骤才能使其正常工作?(也就是说,我应该把什么移动到哪里?为什么?如果你把你正在使

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

我得到的错误是MIDL2025:语法错误:需要一个接近“IgBrush”的类型规范。我正在使用VisualStudio2008

当我添加一个枚举时,我记得我经常使用IDL,最终使它接受枚举作为参数。没有这样的运气


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

如果你把你正在使用的IDL放进去,会有帮助

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

interface IMyFactory:IDispatch
{
  ...
};

interface IMyObject:IDispatch
{
  HRESULT SetFactory([in] IMyFactory * state);
}
但我建议您传递这些参数,比如IUnknown*或IDispach*(如果它们合适的话),那么最后一个资源将使用VOID*作为参数