首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

小弟我用atl写了一个组件,但是出现如下异常,请解释一下

2012-01-21 
我用atl写了一个组件,但是出现如下错误,请解释一下Compiling...CustomInfo.cppd:\programfiles\microsoftv

我用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好了, 具体返回什么还要查你这接口的相关资料

热点排行