在类的定义的头文件中定义了:
    BITMAPFILEHEADER m_Bitmapfileheader;
    BITMAPINFOHEADER m_Bitmapinfoheader;
在成员函数定义文件使用时:
pFilebitmap.Read(&m_Bitmapfileheader,sizeof(BITMAPFILEHEADER));
pFilebitmap.Read(&m_Bitmapinfoheader,sizeof(BITMAPINFOHEADER));
却提示:标示符未定义  error C2065: 'm_Bitmapfileheader' : undeclared identifier

解决方案 »

  1.   

    我定义了一个新类CBitmapFile继承自CObject代码如下,是不是定义的有问题!
    // BitmapFile.h: interface for the CBitmapFile class.
    //
    //////////////////////////////////////////////////////////////////////#if !defined(AFX_BITMAPFILE_H__77AED4FD_4F50_4667_A51E_DE841376C4A9__INCLUDED_)
    #define AFX_BITMAPFILE_H__77AED4FD_4F50_4667_A51E_DE841376C4A9__INCLUDED_#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    #include "Windows.h"class CBitmapFile : public CObject  
    {
    public:
    CBitmapFile();
    virtual ~CBitmapFile();
    public:
    void Read();
        BOOL Isbmpfile();
        long Width();
        long Heigth();
        int Needbit();
        CPalette *Getpalette();
    public:
    COLORREF *m_Colorref;
    // BITMAPFILEHEADER m_Bitmapfileheader;
    //    BITMAPINFOHEADER m_Bitmapinfoheader;
        RGBQUAD pPalette;
    BYTE *pMappixel;
    int nCoutRgb;
    };#endif // !defined(AFX_BITMAPFILE_H__77AED4FD_4F50_4667_A51E_DE841376C4A9__INCLUDED_)
      

  2.   

    把 Windows.h头文件加进CBitmapFile.h头文件
      

  3.   

    你在使用该类的应用程序中也要加Windows.h头文件啊!
    pFilebitmap.Read(&m_Bitmapfileheader,sizeof(BITMAPFILEHEADER));
    可以看出来你在该类的方法!但是Bitmapfileheader是BITMAPFILEHEADER 类型的你得把声明该类型的头文件加进来,应该是Windows.h
      

  4.   

    头文件是mfc生成的马?
    怎么会出现#include "windows.h"???
    应该什么都没有,就算有,也是#include<windows.h>
    cpp文件呢?
    又没有#include"stdafx.h"
    #include "bitmapfile.h"
    顺便提一下,对搂主的命名方式有意见,建议每个单词开头大写。
      

  5.   

    注意:
    #include "stdafx.h"
    一定要在cpp文件中其他#include之前
      

  6.   

    全部代码如下,请帮帮忙!
    头文件为:// BitmapFile.h: interface for the CBitmapFile class.
    //
    //////////////////////////////////////////////////////////////////////#if !defined(AFX_BITMAPFILE_H__77AED4FD_4F50_4667_A51E_DE841376C4A9__INCLUDED_)
    #define AFX_BITMAPFILE_H__77AED4FD_4F50_4667_A51E_DE841376C4A9__INCLUDED_#if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000class CBitmapFile : public CObject  
    {
    public:
    CBitmapFile();
    virtual ~CBitmapFile();
    //{{AFX_MSG(CBitmapFile)
    //}}AFX_MSG
    DECLARE_MESSAGE_MAP()
    public:
    void Read();
        BOOL Isbmpfile();
        long Width();
        long Heigth();
        int Needbit();
        CPalette *Getpalette();
    public:
    COLORREF *m_Colorref;
    BITMAPFILEHEADER m_Bitmapfileheader;
        BITMAPINFOHEADER m_Bitmapinfoheader;
        RGBQUAD pPalette;
    BYTE *pMappixel;
    int nCoutRgb;
    };
    ///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}
    // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
    #endif // !defined(AFX_BITMAPFILE_H__77AED4FD_4F50_4667_A51E_DE841376C4A9__INCLUDED_).cpp文件为:
    // BitmapFile.cpp: implementation of the CBitmapFile class.
    //
    //////////////////////////////////////////////////////////////////////#include "stdafx.h"
    #include "Ex02.h"
    #include "BitmapFile.h"
    #include <Windows.h>#ifdef _DEBUG
    #undef THIS_FILE
    static char THIS_FILE[]=__FILE__;
    #define new DEBUG_NEW
    #endif//////////////////////////////////////////////////////////////////////
    // Construction/Destruction
    //////////////////////////////////////////////////////////////////////
    IMPLEMENT_DYNAMIC(CBitmapFile,CObject )
    BEGIN_MESSAGE_MAP(CBitmapFile,CObject)
    //{{AFX_MSG_MAP(CBitmapFile)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()BITMAPFILEHEADER m_Bitmapfileheader;
    BITMAPINFOHEADER m_Bitmapinfoheader;
    CBitmapFile::CBitmapFile()
    {
    }CBitmapFile::~CBitmapFile()
    {
    delete m_Colorref;
    CObject::~CObject();
    }
    void Read()
    {
    CFile pFilebitmap;
    LPSTR Lpszfilepath="c:\\bitmap.bmp";
    try
    {
    LPSTR lpszerror;
    if(!(pFilebitmap.Open(Lpszfilepath,CFile::modeRead,NULL)))
    {
    lpszerror="Open file failed!\n";
    throw lpszerror;
    }
    }
    catch(LPSTR lpszerror)
    {
    MessageBox(NULL,lpszerror,lpszerror,MB_OK);
    }
    try
    {
    pFilebitmap.Read(&m_Bitma pfileheader,sizeof(BITMAPFILEHEADER));
    pFilebitmap.Read(&m_Bitmapinfoheader,sizeof(BITMAPINFOHEADER));
    }
    catch(CFileException* e)
    {
    if(e->m_cause==CFileException::accessDenied)
    MessageBox(NULL,"Access denied !","Access denied!",MB_OK);
    if(e->m_cause==CFileException::hardIO)
    MessageBox(NULL,"There was a hardware error! !","hardIO",MB_OK);
    }
    if(m_Bitmapfileheader.bfType!=0x4d42)
    AfxMessageBox("The File isnot type of bmp!",MB_OK,0);
    CFileStatus status;
    pFilebitmap.GetStatus(status);
    if(m_Bitmapfileheader.bfSize!=status.m_size)
    AfxMessageBox("The File is destoryed !",MB_OK,0);//......
    }