ATL的接口宣言从interface改成了dispinterface,编译就失败了
ATL的接口声明从interface改成了dispinterface,编译就失败了。
我用ATL建立一个工程,创建一个简单对象,如下代码。idl编译没有问题:
然后我把interface那句话改成了:
VC编译错误:
: error MIDL2025: syntax error : expecting } near "["
: error MIDL2026: cannot recover from earlier syntax errors; aborting compilation
这个错误到底是什么意思呢? 不是说dispinterface等于interface : IDispatch吗?
还请指导一下。谢谢。
------解决方案--------------------
一般是事件接口的定义才用这个类型声明的
我用ATL建立一个工程,创建一个简单对象,如下代码。idl编译没有问题:
[
object,
uuid(B06543F7-D418-43CE-AABB-44B70D817833),
dual,
oleautomation,
nonextensible,
pointer_default(unique)
]
interface Im : IDispatch{
[propget] HRESULT m_l([out, retval] LONG* pVal);
[propput] HRESULT m_l([in] LONG newVal);
};
然后我把interface那句话改成了:
dispinterface Im /*: IDispatch*/{
[propget] HRESULT m_l([out, retval] LONG* pVal);
[propput] HRESULT m_l([in] LONG newVal);
};
VC编译错误:
: error MIDL2025: syntax error : expecting } near "["
: error MIDL2026: cannot recover from earlier syntax errors; aborting compilation
这个错误到底是什么意思呢? 不是说dispinterface等于interface : IDispatch吗?
还请指导一下。谢谢。
------解决方案--------------------
一般是事件接口的定义才用这个类型声明的