首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

用MFC进行COM编程添加接口出现异常

2012-03-21 
用MFC进行COM编程添加接口出现错误.用MFC进行COM编程,在CCmdTarget中派生了一个类CAA,支持自动化,现在我想

用MFC进行COM编程添加接口出现错误.
用MFC进行COM编程,在CCmdTarget中派生了一个类CAA,支持自动化,现在我想添加一个自定义接口
1.在idl文件中,添加了
  [ uuid(50B738DE-FF12-4a47-979F-2B41F644A80A) ]
interface IIdlIest : IUnknown
{ //普通接口没有属性
[id(3), helpstring("方法ScriptIDL")] void ScriptIDL(void);

};  
  [ uuid(3B2AA5BC-7D8E-4492-AEED-5316422FB8F9) ] //标识Comd对象的uuid
coclass ObjectComTest
{
[default] dispinterface IObjectComTest;
interface IIdlIest;};
2.在CAA.cpp的接口映射表中
  BEGIN_INTERFACE_MAP(CObjectComTest, CCmdTarget)
INTERFACE_PART(CObjectComTest, IID_IObjectComTest, Dispatch)
INTERFACE_PART(CObjectComTest, IID_IIdlIest, IdlIest)  
  END_INTERFACE_MAP()
3.然后实现了void ScriptIDL(void);
现在编译总出现一个错误error C2039: “m_xIdlIest”: 不是“CObjectComTest”的成员
是不是哪里还需要声明这个IIdlIest接口??

[解决办法]
先用以下的看看
BEGIN_INTERFACE_PART(IdlIest, IIdlIest)
END_INTERFACE_PART(IdlIest)


[解决办法]
使用向导添加吧,所有的接口都是在IDispath这个接口里面,也就是说你要加在CXXXctrl这个类里面,最好的方法就是用向导。
[解决办法]
INTERFACE_PART(CObjectComTest, IID_IIdlIest, IdlIest)
IID_IIDLIest是否打错了,是不是应该改成IID_IIDLTest

热点排行