编译器错误 C3707

“function”:调度接口方法必须有 dispid

注解

如果使用 dispinterface 方法,则必须为其分配 dispid。 若要修复此错误,请将dispid分配给dispinterface方法,例如,通过在以下示例中取消注释方法上的id属性。 有关详细信息,请参阅属性 dispinterfaceid

Example

以下示例生成 C3707:

// C3707.cpp
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>

[module(name="xx")];
[dispinterface]
__interface IEvents : IDispatch
{
   HRESULT event1([in] int i);   // C3707
   // try the following line instead
   // [id(1)] HRESULT event1([in] int i);
};

int main() {
}