VS2012 ActiveX控件_D接口添加方法事项

时间:2024-10-01 16:35:20

自己写的是Clock控件,所以控件的接口是_DClock

使用向导添加方法后,会在紫色区域自动生成红色代码:(添加Hello方法)

dispinterface _DClock
{
properties:
methods:
//void Hello(); //刚开始按照自己的思路,添加的方法,不正确
[id(1)] void Hello(void);//系统自动生成代码
};

coclass Clock
{
[default,[id] helpstring("method Hello")] dispinterface _DClock;
[default, source] dispinterface _DClockEvents;
};

但是编译不成功,有错误

1>.\Clock.idl(48): error MIDL2025: syntax error : expecting ] or , near "["
1>.\Clock.idl(48): error MIDL2025: syntax error : expecting ( near "]"
1>.\Clock.idl(48): error MIDL2316: illegal expression type used in attribute

删除 [id] 后,可编译成功,用TSTCON32.exe测试,正常。