我用atl写了一个组件,但是出现如下错误,请解释一下
Compiling...
CustomInfo.cpp
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : error C2259: 'CComObject <class CInfermation> ' : cannot instantiate abstract class due to following members:
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1823) : while compiling class-template member function 'long __stdcall ATL::CComCreator <class ATL::CComObject <class CInfermation> > ::CreateInstance(void *,const struct _GUID
&,void ** ) '
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : warning C4259: 'long __stdcall IInfermation::LookupCustomer(unsigned char *,long) ' : pure virtual function was not defined
d:\custominfo\custominfo.h(83) : see declaration of 'LookupCustomer '
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1823) : while compiling class-template member function 'long __stdcall ATL::CComCreator <class ATL::CComObject <class CInfermation> > ::CreateInstance(void *,const struct _GUID
&,void ** ) '
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : error C2259: 'CComObject <class CInfermation> ' : cannot instantiate abstract class due to following members:
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1823) : while compiling class-template member function 'long __stdcall ATL::CComCreator <class ATL::CComObject <class CInfermation> > ::CreateInstance(void *,const struct _GUID
&,void ** ) '
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1827) : warning C4259: 'long __stdcall IInfermation::LookupCustomer(unsigned char *,long) ' : pure virtual function was not defined
d:\custominfo\custominfo.h(83) : see declaration of 'LookupCustomer '
d:\program files\microsoft visual studio\vc98\atl\include\atlcom.h(1823) : while compiling class-template member function 'long __stdcall ATL::CComCreator <class ATL::CComObject <class CInfermation> > ::CreateInstance(void *,const struct _GUID
&,void ** ) '
Infermation.cpp
Generating Code...
Error executing cl.exe.
CustomInfo.dll - 2 error(s), 2 warning(s)
其中CInfermation是我定义的一个组件类,LookupCustomer是实现了接口中的函数,大概意思是我的这个类不能被实例化,我在程序中只实现了我的接口中定义的三个函数,难道还有什么工作没有做吗?
[解决办法]
接口的所有函数均必须实现, 如果不想实现某个函数, 写个空实现, 直接返回S_OK, S_FALSE, E_NOTIMPL好了, 具体返回什么还要查你这接口的相关资料