不知道为什么,GetDocument返回值是空,各位大虾帮帮忙CCellTextDoc * m_pDoc =(CCellTextDoc *) GetDocument();
ASSERT_VALID(m_pDoc);调试发现 m_pDoc的值是空的(0x00000000)
ASSERT_VALID(m_pDoc);调试发现 m_pDoc的值是空的(0x00000000)
解决方案 »
- linux下关于库冲突的问题该怎么解决呢。
- CListCtrl 滚动条无法拖动问题
- 怎么调用系统右键菜单
- 怎样隐藏盘符的问题(急)
- 一个图像编程的问题,或许是动画,反正请各位大虾神仙都进来给点意见
- 希望高手来谈谈,什么样的DLL可以用GetProcAddress 调用。什么DLL是不能的
- 我下了一份 Visual Studio6.0 文件日期都是 98年的,VS6 是98 年出的吗?
- 对于精通c语言,能运用c编写各类应用程序(如网络,硬件方面),学完了谭浩强《c程序设计》后改看什么书?
- 新手想学mfc
- CHtmlview 展示资源管理器内容时双击文件夹 弹出系统资源管理器
- 关于在单文档弄个树形控件问题,基类是CVIEW
- 怎样把一个整形的数转为CListbox行数的默认值
放的位置不对
我刚解决了
重新 new 一个就可以获得,这是为什么啊?
如果代码这么写
CCellTextDoc * m_pDoc =(CCellTextDoc *) GetDocument();
ASSERT_VALID(m_pDoc);
那么 m_pDoc是空值如果代码这么写
CCellTextDoc * m_pDoc = new CCellTextDoc();
m_pDoc =(CCellTextDoc *) GetDocument();
ASSERT_VALID(m_pDoc);
那么 m_pDoc就会得到正确的值我想知道为什么会是这样的结果?各位难道没有遇到这样的情况吗?
而下面CCellTextDoc*m_pDoc=new CCellTextDoc()这个,你先为m_pDoc分配了内存空间,然后再通过
m_pDoc=(CCellTextDoc*)GetDocument()将GetDocument()的值赋给了m_pDoc,所以这个时候m_pDoc对象就有了值,所以这个时候m_pDoc就会得到正确的值。