标题:如何在vc6中创建CObject的派生类
只看楼主
hzyzxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:168
注 册:2009-6-14
结帖率:66.67%
已结贴  问题点数:10 回复次数:2 
如何在vc6中创建CObject的派生类
请问如何在vc6中派生Cobjec的类。
刚才用MFC向导生成了一个多文档程序。然后工程中创建了Stroke.h和Stroke.cpp文件,以创建CStroke(继承CObject),可发现编译Stroke.cpp时一直错误。还望高手指点。
Stroke.h文件内容如下:
程序代码:
#ifndef CSTROKE_H
#define CSTROKE_H
#include "StdAfx.h"
class CStroke:public CObject
{
public:

 CStroke(UINT nPenWidth);
protected:

 CStroke();

 DECLARE_SERIAL(CStroke)
//成员变量
protected:

 UINT m_nPenWidth;
public:

 CArray<CPoint,CPoint> m_pointArray;
//操作
public:

 BOOL DrawStroke(CDC* pDC);

 virtual void Serialize(CArchive& ar);
};
#endif
Stroke.cpp的内容:
程序代码:
#include "Stroke.h"
IMPLENT_SERIAL(CStroke,CObject,1)
CStroke::CStroke()
{
}
CStroke::CStroke(UINT nPenWidth)
{

 m_nPenWidth=nPenWidth;
}
BOOL CStroke::DrawStroke(CDC* pDC)
{

 CPen penStroke;

 if(!penStroke.CreatePen(PS_SOLID,m_nPenWidth,RGB(0,0,0))
  return FALSE;

 CPen* pOldPen=pDC->SelectObject(&penStroke);

 pDC->MoveTo(m_pointArray[0]);

 for(int i=0;i<m_pointArray.GetSize();i++)

 {
  pDC->LineTo(m_pointArray[i]);

 }

 pDC->SelectObject(pOldPen);

 return TRUE;
}
void CStroke::Serialize(CArchive &ar)
{

 if(ar.IsStoring)

 {
  ar<<(WORD)m_nPenWidth;

 }

 else

 {
  WORD v;
  ar>>v;
  m_nPenWidth=v;

 }

 m_pointArray.Serialize(ar);
}
编译时一直提示错误:unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
郁闷啊!
搜索更多相关主题的帖子: CObject 派生类 
2010-04-19 22:13
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
得分:10 
Stroke类你是手动生成的还是使用类向导生成的?
#include "StdAfx.h"不应该出现在头文件里,如果用了预编译头,它应该出现在CPP文件里。
另外
IMPLENT_SERIAL应该是IMPLEMENT_SERIAL
2010-04-19 23:35
hzyzxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:76
专家分:168
注 册:2009-6-14
得分:0 
问题找到了,谢谢!
2010-04-20 22:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-303663-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.918739 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved