关于CTypedPtrArray问题 (50分求助)

liu_shenglun 2007-10-07 06:33:10
Draw基类头文件 draw。h
class CEntDraw : public CObject
{
public:
CEntDraw();
virtual ~CEntDraw();

public:
void Initialize();
virtual void Draw(CDC* pDc) = 0;

protected:
};

Draw基类的实现文件 draw.cpp
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CEntDraw::CEntDraw()
{
Initialize();
}

CEntDraw::~CEntDraw()
{

}

// 初始化图形元素基类数据
void CEntDraw::Initialize()
{
}

派生类 CMairayLine头文件 mairayLine。h
class CMairayLine : public CEntDraw
{
public:
virtual void Draw(CDC* pDc);
CMairayLine();
virtual ~CMairayLine();

};

派生类的实现文件 mairayline.cpp
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMairayLine::CMairayLine()
{

}

CMairayLine::~CMairayLine()
{

}

void CMairayLine::Draw(CDC *pDc)
{

}

在文档类头文件中有下面的声明
class CMairayDoc : public CDocument
{
protected: // create from serialization only
CMairayDoc();

public:
virtual ~CMairayDoc();
...
protected:
CTypedPtrArray<CObArray, CMairayPoint*> m_PointArray;
CTypedPtrArray<CObArray, CMairayLine*> m_LineArray;
...
public:
BOOL AddLineFromDxf(REALPOINT p0, REALPOINT p1);
...
}

文档类的实现文件中
// 增加一线实体
BOOL CMairayDoc::AddLineFromDxf(REALPOINT p0, REALPOINT p1)
{
CMairayLine* pLine = new CMairayLine;
ASSERT(pLine);
if(pLine == NULL)
return FALSE;
m_LineArray.Add(pLine);
return TRUE;
}

问题出在m_LineArray.Add(pLine);



请高手帮忙
...全文
124 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2007-10-08
  • 打赏
  • 举报
回复
结贴的时候出现“分数总和与帖子给分不符”该如何处理

++++++++++
你把分数(50)给回帖者都分掉啊。
liu_shenglun 2007-10-07
  • 打赏
  • 举报
回复
问题已经解决,问题中另外用一个类CDxf,是文档类的友元类,且定义了一指针m_pDoc指向文档类,并通过m_pDoc来访问文档的成员如这里的
m_pDoc->AddLineFormDxf()
但,指针m_pDoc未初始化所以出错

在此谢谢刺客的提醒。

请教版主,结贴的时候出现“分数总和与帖子给分不符”该如何处理

谢谢
daidongsheng 2007-10-07
  • 打赏
  • 举报
回复
看不到图片,我上次也是遇到这个问题
hollyren 2007-10-07
  • 打赏
  • 举报
回复
图看不到啊
vocanicy 2007-10-07
  • 打赏
  • 举报
回复
感觉你这段代码没有问题

问题恐怕出在其他地方

你的AddLineFromDxf函数是在哪里调用的?
如果是使用pDoc->AddLineFromDxf(a,b)的形式调用,你检查一下pDoc指针是否有效


liu_shenglun 2007-10-07
  • 打赏
  • 举报
回复
谢谢,调试运行时出现的错误信息就是弹出的对话框,即第一副图,第二副图显示的内容就是这个类的this指针的成员值
可以看到this->m_nSize = CXX0030:Error:Expression can not be evaluated
vocanicy 2007-10-07
  • 打赏
  • 举报
回复
为什么不把错误信息贴出来?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧