用VS2005的ATL工程做COM组件,添加ATL简单类之后带的那个接口使用正常。然后自己在idl里面依葫芦画瓢添加一个新接口,用类向导的添加->实现接口添加了接口并且实现两个方法。然后在测试程序里使用这个新接口的时候编译不过,报未声明的标识符,这什么原因?注:
idl文件添加的内容
[
object,
uuid(E3B76EF4-45FD-4405-A379-6988B7EB465E),
dual,
nonextensible,
helpstring("IAdvanceMath 接口"),
pointer_default(unique)
]
interface IAdvanceMath : IDispatch
{ [id(1), helpstring("方法Multiply")] HRESULT Multiply([in,out] LONG* left_, [in] LONG num_);
[id(2), helpstring("方法Div")] HRESULT Div([in,out] LONG* left_, [in] LONG num_);
};测试程序里的部分代码
#import "../Debug/atlMath.dll" no_namespace
...
IAdvanceMath * pAdvance = NULL;//这个地方报错ATL项目和测试程序放在一个解决方案里头,并且都生成到../debug这个目录