VC6 ATL 控件编译问题:
我这边创建了一个 控件类:
class ATL_NO_VTABLE COnePlayerEx :
public CComObjectRootEx<CComSingleThreadModel>,
public CStockPropImpl<COnePlayerEx, IOnePlayerEx, &IID_IOnePlayerEx, &LIBID_ONEPLAYERLib>,
public CComControl<COnePlayerEx>,
public IPersistStreamInitImpl<COnePlayerEx>,
public IOleControlImpl<COnePlayerEx>,
public IOleObjectImpl<COnePlayerEx>,
public IOleInPlaceActiveObjectImpl<COnePlayerEx>,
public IViewObjectExImpl<COnePlayerEx>,
public IOleInPlaceObjectWindowlessImpl<COnePlayerEx>,
public IConnectionPointContainerImpl<COnePlayerEx>,
public IPersistStorageImpl<COnePlayerEx>,
public ISpecifyPropertyPagesImpl<COnePlayerEx>,
public IQuickActivateImpl<COnePlayerEx>,
public IDataObjectImpl<COnePlayerEx>,
public IProvideClassInfo2Impl<&CLSID_OnePlayerEx, &DIID__IOnePlayerExEvents, &LIBID_ONEPLAYERLib>,
public IPropertyNotifySinkCP<COnePlayerEx>,
public CComCoClass<COnePlayerEx, &CLSID_OnePlayerEx>,
public CProxy_IOnePlayerExEvents< COnePlayerEx >,
public IObjectSafetyImpl<COnePlayerEx, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>
然后在另外一个文件FullWnd.h 里创建了另外一个对话框类CFullWnd:
class COnePlayerEx;
class CFullWnd : public CDialogImpl<CFullWnd>
{
public:
BEGIN_MSG_MAP( CFullWnd )
MESSAGE_HANDLER(WM_SIZE, OnSize)
MESSAGE_HANDLER(WM_SHOWWINDOW,OnShow)
MESSAGE_HANDLER(WM_KEYUP, OnKeyUp)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
END_MSG_MAP()
public:
CFullWnd();
virtual ~CFullWnd();
enum {IDD=IDD_DIALOG_FULL};
public:
COnePlayerEx* m_pOne;
在CFullWnd 类中要使用 m_pOne 这个指针,代码编译的时候总是报错如下:
E:\TMC_Coding\Src\OnePlayer\VideoWndProc.cpp(277) : error C2027: use of undefined type 'COnePlayerEx'
E:\TMC_Coding\Src\OnePlayer\VideoWndProc.h(18) : see declaration of 'COnePlayerEx'
E:\TMC_Coding\Src\OnePlayer\VideoWndProc.cpp(277) : error C2227: left of '->m_bFullScreen' must point to class/struct/union
E:\TMC_Coding\Src\OnePlayer\VideoWndProc.cpp(282) : error C2027: use of undefined type 'COnePlayerEx'
E:\TMC_Coding\Src\OnePlayer\VideoWndProc.h(18) : see declaration of 'COnePlayerEx'
E:\TMC_Coding\Src\OnePlayer\VideoWndProc.cpp(282) : error C2227: left of '->m_hWnd' must point to class/struct/union
本来想着在FullWnd.h中添加OnePlayerEx.h 行了,但是一加入这个头文件就报错:
E:\TMC_Coding\Src\OnePlayer\OnePlayerCP.h(9) : error C2065: 'DIID__IOnePlayerExEvents' : undeclared identifier
E:\TMC_Coding\Src\OnePlayer\OnePlayerCP.h(94) : see reference to class template instantiation 'CProxy_IOnePlayerExEvents<T>' being compiled
E:\TMC_Coding\Src\OnePlayer\OnePlayerEx.h(16) : error C2065: 'IOnePlayerEx' : undeclared identifier
E:\TMC_Coding\Src\OnePlayer\OnePlayerEx.h(16) : error C2065: 'IID_IOnePlayerEx' : undeclared identifier
E:\TMC_Coding\Src\OnePlayer\OnePlayerEx.h(16) : error C2065: 'LIBID_ONEPLAYERLib' : undeclared identifier
E:\TMC_Coding\Src\OnePlayer\OnePlayerEx.h(29) : error C2065: 'CLSID_OnePlayerEx' : undeclared identifier
E:\TMC_Coding\Src\OnePlayer\OnePlayerCP.h(10) : fatal error C1903: unable to recover from previous error(s); stopping compilation
这个是什么原因啊?