Что делать с этой ошибкой в классах ?
От: Faustmen Беларусь  
Дата: 31.03.02 13:33
Оценка:
Имею файл map.h
:

class map
{
public:
    map(LPDIRECTDRAWSURFACE7 pBackBuffer,WORD size_x,WORD size_y,UINT ss);
    void set_prop(LPDIRECTDRAWSURFACE7 pBackBuffer,WORD size_x,
        WORD size_y,UINT sq_size);
    void set_mapxy(int xx,int yy,char code);
    void set_surface(LPDIRECTDRAWSURFACE7 pmapscreen);
    void set_viewrect(RECT rect1);
    void map::draw_map();
    ~map();
private:
    void draw_mapfug(UINT sq_x,UINT sq_y);
    LPDIRECTDRAWSURFACE7 pBack,pFug;
    UINT map_x,map_y,c_x,c_y;
    RECT rview;
    char pMap[100][100];
    UINT square;
    UINT n_squares;
};
//-----------------------------------------------------------------------
void map::draw_map()
{
    int x1=(int)(c_x/square);
    int y1=(int)(c_y/square);
    int x2=(int)((c_x+rview.right-rview.left)/square+1);
    int y2=(int)((c_y+rview.bottom-rview.top)/square+1);
    for(int yy=y1;yy<y2;yy++)
    {
        for(int xx=x1;xx<x2;xx++)
        {
            draw_mapfug(xx,yy);
        }
    }
}
void map::set_prop(LPDIRECTDRAWSURFACE7 pBackBuffer,WORD size_x,
    WORD size_y,UINT sq_size)
{
    pBack=pBackBuffer;
    map_x=size_x;
    map_y=size_y;
//    pMap=new char[map_y][map_x];
    rview.left=0;
    rview.top=0;
    rview.bottom=0;
    rview.right=0;
    c_x=0;
    c_y=0;
    square=sq_size;
    int ex;
    int ey;
    for(ey=0;ey<map_y;ey++)
    {
        for(ex=0;ex<map_x;ex++)
        {
            pMap[ey][ex]=0;
        }
    }
}

    


//-----------------------------------------------------------------------
void map::draw_mapfug(UINT sqx,UINT sqy)
{
    RECT rect1;
    
    rect1.top=0;
    rect1.left=0;
    rect1.right=square;
    rect1.bottom=square;

    int real_x=sqx*square-c_x;
    int real_y=sqy*square-c_y;
    int b_x=square+real_x;
    int b_y=square+real_y;
    if(real_x<-square || real_y<-square)
    {
        return;
    }
    if(real_x<rview.left)
    {
        rect1.left-=real_x;        
        real_x=rview.left;
    }
    if(real_y<rview.top)
    {
        rect1.top-=real_y;        
        real_y=rview.top;
    }
    if(real_x>rview.right-square)
    {
        rect1.right=rview.right-real_x;
    }
    if(real_y>rview.bottom-square)
    {
        rect1.bottom=rview.bottom-real_y;
    }

    rect1.left+=pMap[sqy][sqx]*square;
    rect1.right+=pMap[sqy][sqx]*square;

    pBack->BltFast(real_x,real_y,pFug,&rect1,DDBLTFAST_WAIT);
}
//-----------------------------------------------------------------------
void map::set_viewrect(RECT rect1)
{
    rview.left=rect1.left;
    rview.top=rect1.top;
    rview.right=rect1.right;
    rview.bottom=rect1.bottom;
}
//-----------------------------------------------------------------------
map::~map()
{
//    delete [] pMap;
}
//-----------------------------------------------------------------------
void map::set_surface(LPDIRECTDRAWSURFACE7 pmapscreen)
{
    pFug=pmapscreen;
}
//-----------------------------------------------------------------------
map::map(LPDIRECTDRAWSURFACE7 pBackBuffer=NULL,WORD size_x=0,
         WORD size_y=0,UINT sq_size=0)
{
    set_prop(pBackBuffer,size_x,size_y,sq_size);
}
//-----------------------------------------------------------------------
void map::set_mapxy(int xx,int yy,char code)
{
    if((xx>=0 && xx<map_x) && (yy>=0 && yy<=map_y))
    {
        pMap[yy][xx]=code;
    }
}





Я этот файл включаю в DATA.H и далее реализую обьект
map my_map();

мне компилятор пишет:
error C2228: left of '.set_prop' must have class/struct/union type
c:\samples\helicopter\base.h(205) : error C2228: left of '.set_surface' must have class/struct/union type
c:\samples\helicopter\base.h(211) : error C2228: left of '.set_viewrect' must have class/struct/union type
c:\samples\helicopter\helic.cpp(23) : error C2228: left of '.draw_map' must have class/struct/union type
Error executing cl.exe.

Подскажите программеры что делать ?
ДАДМИТРИЙ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.