📄 subject_61079.htm
字号:
<p>
序号:61079 发表者:蓝白725 发表日期:2003-11-17 17:27:09
<br>主题:为什么会Access Violation?
<br>内容:我在一MDI程序的视图类的构造函数中加了如下代码:<BR>CChildFrame* pChild=(CChildFrame*)GetParentFrame();<BR>pChild->m_pDoc=this;<BR>C***Doc* pDoc = GetDocument();<BR>pChild->m_pDoc=pDoc;<BR><BR>其中m_pDoc和m_pView是在CChildFrame中定义的两个成员变量:<BR>CXXXDoc* m_pDoc;<BR>CXXXView* m_pView;<BR>并在CChildFrame的构造函数中将它们置空。<BR><BR>但编译时,在pChild->m_pView=this;出错,有这样的提示:UnHandled exception in ***.exe: 0x000000005: Access Violation。<BR>不知是什么原因,请各位高手帮帮忙!<BR>非常感谢!!!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-11-17 17:41:02
<br>内容:这样好像相互包含了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:michael 回复日期:2003-11-17 17:47:17
<br>内容: pChild->m_pView=this;这行是放在哪里的?据我判断应该是放在视图类的构造函数里才对。视图对象没构造就给pChild->m_pView赋值就会有问题
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-11-17 17:53:15
<br>内容:哦,对了,同意2楼的
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:蓝白725 回复日期:2003-11-17 18:15:53
<br>内容:楼上二位:<BR>我就是把pChild->m_pView=this放在C***View::C***View()里的!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:视频新手 回复日期:2003-11-17 18:23:26
<br>内容:CAaaaView::CAaaaView()<BR>{<BR>CChildFrame* pChild=(CChildFrame*)GetParentFrame();<BR>pChild->m_pView = this;<BR>CAaaaDoc* pDoc = GetDocument();<BR>pChild->m_pDoc=pDoc;<BR><BR>}<BR>在执行CChildFrame* pChild=(CChildFrame*)GetParentFrame();时,返回pChild=NULL;<BR>因为pChild为空, 那么pChild->m_pView当然不行, pChild->m_pDoc当然不行<BR>视口构造时, 视口的爹还没有设置好, 也许还没有构造也不一定<BR>在视口的构造函数中调用(CChildFrame*)GetParentFrame()太早<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:蓝白725 回复日期:2003-11-17 18:31:11
<br>内容:谢谢视频新手!<BR>我设断点查了一下,这一行:CChildFrame* pChild=(CChildFrame*)GetParentFrame();执行后<BR>pChild=0x00000000,也就是NULL吧!<BR>应该是这里的问题<BR>能不能请问一下,你认为这四行应该放在那里比较合适呢?<BR>放在C***View::OnInitialUpdate中如何?<BR>2003-11-17 19:18:17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -