自己在单文档工程里添加的.h文件和.cpp文件,
在运行时DECLEAR_SERIAL宏的一行编译通不过,
头文件和实现文件的全部代码如下DrawLine.h文件:#ifndef DRAWLINE_H
#define DRAWLINE_Hclass CDrawLine: public CObject
{
DECLEAR_SERIAL(CDrawLine)                //声明宏
public:
CDrawLine(CPoint pStar,CPoint pEnd);     //构造函数
virtual  ~CDrawLine();
void     Draw(CDC *pDC);                 //绘制直线
CDrawLine();                             //不带任何参数的构造函数 virtual void Serialize(CArchive &ar);    //声明序列化函数protected:
CPoint   m_Star,m_End;                   //起点、终点坐标
};#endif
DrawLine.cpp文件:#include "stdafx.h"
#include "DrawLine.h"CDrawLine::CDrawLine(CPoint pStar,CPoint pEnd)
{
m_Star=pStar;
m_End=pEnd;
}void CDrawLine::Draw(CDC *pDC)
{
pDC->MoveTo(m_Star.x,m_Star.y);             //绘制线条
pDC->LineTo(m_End.x,m_End.y);
}CDrawLine::~CDrawLine()
{
}IMPLEMENT_SERIAL(CDrawLine,CObject,1)CDrawLine::CDrawLine()                          //不带参数的构造函数的实现
{
}void CDrawLine::Serialize(CArchive &ar)         //序列化函数的实现
{
if(ar.IsStroing())                          //进行存档处理
{
ar<<m_Star<<m_End;
}
else                                        //进行读档处理
{
ar>>m_Star>>m_End;
}
}编译以后出现12个错误,
第一个错误是
drawline.h(7) : error C2143: syntax error : missing ';' before 'public'
请问这错误究竟是什么原因,
谢谢

解决方案 »

  1.   

    CDrawLine();放DECLEAR_SERIAL(CDrawLine)前面试下。
      

  2.   

    建议看下DECLEAR_SERIAL宏定义具体含义。
      

  3.   

    回楼上,还是不行啊,
    DECLEAR_SERIAL宏的具体含义看过了,
    没什么收获 囧
      

  4.   

    你拼错了,应该是:DECLARE_SERIAL 
      

  5.   

    …………………………确实拼错了,低错误……
    我晕,多谢楼上,声明这词应该是declare……我倒……,再次感谢……