描述:
在IHWM类型库中定义的myEnum想在IHWD组件中也使用。
在IHWD.idl中使用importlib("IHWM.TLB");的话,在编译IHWD.h时会提示找不到myEnum的定义。
在IHWD.idl中使用import("IHWM.idl");的话,在编译时会提示:
E:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE\atlcom.h(1827) : error C2259: 'CComObject<class CThermoPrinter>' : cannot instantiate abstract class due to following members:
E:\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 CThermoPrinter> >::CreateInstance(void *,const struct _GUID &,void ** )'
E:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE\atlcom.h(1827) : warning C4259: 'long __stdcall IThermoPrinter::GetStatus(enum __MIDL___MIDL_itf_IHWM_0000_0002 *)' : pure virtual function was not defined
G:\Intehel\IHWD\OBJECT\IHWD.h(1332) : see declaration of 'GetStatus'
E:\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 CThermoPrinter> >::CreateInstance(void *,const struct _GUID &,void ** )'
E:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE\atlcom.h(1827) : error C2259: 'CComObject<class CThermoPrinter>' : cannot instantiate abstract class due to following members:
E:\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 CThermoPrinter> >::CreateInstance(void *,const struct _GUID &,void ** )'
E:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE\atlcom.h(1827) : warning C4259: 'long __stdcall IThermoPrinter::GetStatus(enum __MIDL___MIDL_itf_IHWM_0000_0002 *)' : pure virtual function was not defined
G:\Intehel\IHWD\OBJECT\IHWD.h(1332) : see declaration of 'GetStatus'
E:\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 CThermoPrinter> >::CreateInstance(void *,const struct _GUID &,void ** )'
这应该怎么解决呢?

