我现在是这么做的,有2个错误:char ch[200]; //Doc类的成员变量
1,
void CSDI2Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
CFile f;
meset(ch,0,200);
f.Open(ar.m_strFileName, CFile::modeRead);
f.Read(ch,100);//第一个错误:Debug Assertion Faild
f.Close();
UpdateAllViews(NULL);
}
}
2,
void CSDI2View::OnDraw(CDC* pDC)
{
CSDI2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str;
str = pDoc->ch;
pDC->TextOut(0,0,str);
//这个地方,假如我没上个错误,直接给ch赋值,也没显示,只能在拖动一下程序框或改变其大小时,才显示,按我的思路,Doc类的UpdateAllViews(NULL);应该起作用啊??
}请问,这两个错误到底怎么回事?是我的思路有问题??应该怎么做??谢谢
1,
void CSDI2Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
CFile f;
meset(ch,0,200);
f.Open(ar.m_strFileName, CFile::modeRead);
f.Read(ch,100);//第一个错误:Debug Assertion Faild
f.Close();
UpdateAllViews(NULL);
}
}
2,
void CSDI2View::OnDraw(CDC* pDC)
{
CSDI2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str;
str = pDoc->ch;
pDC->TextOut(0,0,str);
//这个地方,假如我没上个错误,直接给ch赋值,也没显示,只能在拖动一下程序框或改变其大小时,才显示,按我的思路,Doc类的UpdateAllViews(NULL);应该起作用啊??
}请问,这两个错误到底怎么回事?是我的思路有问题??应该怎么做??谢谢
我知道用CEditView什么都不用作就可以显示,呵呵
我这样还是有第一个错误:void CSDI2Doc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
}
else
{
// TODO: add loading code here
/* CFile f;
f.Open(ar.m_strFileName, CFile::modeRead);
f.Read(ch,100);
f.Close();*/ ar.Read(ch,100);
ar.Close();
// m_str = "aaaaaaaaaaaaaaaaaa";
UpdateAllViews(NULL);
}
}void CSDI2View::OnDraw(CDC* pDC)
{
CSDI2Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString str;
// str = pDoc->m_str;
// str = "sssssssssssssss";
str = pDoc->ch;
pDC->TextOut(0,0,str);
}我感觉是不会用CArchive