如果一个类的头文件在编译是说打不开 
是什么原因呢 
我在一个工程中想打开CDib类 
但老说打不开头文件 
一下是CDib.h 
#ifndef _INSIDE_VISUAL_CPP_CDIB 
#define _INSIDE_VISUAL_CPP_CDIB class CDib : public CObject 

enum Alloc {noAlloc, crtAlloc, heapAlloc}; 
DECLARE_SERIAL(CDib) 
public: 
LPVOID m_lpvColorTable; 
HBITMAP m_hBitmap; 
LPBYTE m_lpImage;  // starting address of DIB bits 
LPBITMAPINFOHEADER m_lpBMIH; //  buffer containing the BITMAPINFOHEADER 
private: 
HGLOBAL m_hGlobal; // For external windows we need to free; 
                  //  could be allocated by this class or allocated externally 
Alloc m_nBmihAlloc; 
Alloc m_nImageAlloc; 
DWORD m_dwSizeImage; // of bits -- not BITMAPINFOHEADER or BITMAPFILEHEADER 
int m_nColorTableEntries; HANDLE m_hFile; 
HANDLE m_hMap; 
LPVOID m_lpvFile; 
HPALETTE m_hPalette; 
public: 
CDib(); 
CDib(CSize size, int nBitCount); // builds BITMAPINFOHEADER 
~CDib(); 
int GetSizeImage() {return m_dwSizeImage;} 
int GetSizeHeader() 
{return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries;} 
CSize GetDimensions(); 
BOOL AttachMapFile(const char* strPathname, BOOL bShare = FALSE); 
BOOL CopyToMapFile(const char* strPathname); 
BOOL AttachMemory(LPVOID lpvMem, BOOL bMustDelete = FALSE, HGLOBAL hGlobal = NULL); 
BOOL Draw(CDC* pDC, CPoint origin, CSize size);  // until we implemnt CreateDibSection 
HBITMAP CreateSection(CDC* pDC = NULL); 
UINT UsePalette(CDC* pDC, BOOL bBackground = FALSE); 
BOOL MakePalette(); 
BOOL SetSystemPalette(CDC* pDC); 
BOOL Compress(CDC* pDC, BOOL bCompress = TRUE); // FALSE means decompress 
HBITMAP CreateBitmap(CDC* pDC); 
BOOL Read(CFile* pFile); 
BOOL ReadSection(CFile* pFile, CDC* pDC = NULL); 
BOOL Write(CFile* pFile); 
void Serialize(CArchive& ar); 
void Empty(); 
private: 
void DetachMapFile(); 
void ComputePaletteSize(int nBitCount); 
void ComputeMetrics(); 
}; 
#endif // _INSIDE_VISUAL_CPP_CDIB