void CSDIC04View::OnDraw(CDC* pDC)
{
CSDIC04Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);//能通过
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CPen myPen;
myPen.CreatePen(PS_SOLID, 2, RGB(0, 0, 0));
CPen * pOldPen = pDC->SelectObject(&myPen);
TRACE("从这里开始有问题%d\n",pDoc->m_ptx[0]);
}
https://www.cnblogs.com/lxt287994374/p/3387169.html
一更:先谢谢楼上,链接看了,我的是单文档,试了写static也是一样报错....
二更:然后错误定位可以再进一步,可能是onnewdocument没有正常加载,这是为什么?
三更:问题迂回解决。原因是onnewdocument和oninitialupdate、ondraw下的一个绘图函数的执行顺序异常导致。之前没有错误时,应该是先执行了onnewdocument,再进行oninitialupdate(我里面也有调用doc的变量),ondraw。但是有了错误后,先执行ondraw,再执行onnewdocument,这就获取不到信息了,进而出错。
使用if加变量强制跳过第一次ondraw下的函数后,程序正常运行!
在ondraw打断点,规避第一次调用函数后,结束ondraw时显示未加载mfc140ud.i386.pdb,有错以前没这个问题,而是直接到onpaint最后一行。
求解释......
https://bbs.csdn.net/topics/391915676 这里贴一个可能类似的问题,虽然我看不太懂。