我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: MFC的UpdateData(FALSE)错误(悬赏二百浮云) 隐藏签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

再不斩



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1414
威望: 0
浮云: 1413
在线等级:
注册时间: 2005-12-23
最后登陆: 2009-04-26

5come5帮你背单词 [ limited /'limitid/ a. 小的,有限的 ]


MFC的UpdateData(FALSE)错误(悬赏二百浮云)

问题说明:我程序由一系列的Dialog组成,各个Dialog直接是由DoModel()函数衔接的,当到了最后一个Dialog的时候,我会在系统托盘处显示图标,程序进入自动工作状态,我设置了一个定时器,定时把信息更新到最后这个界面上来,我界面上有两个EditBox,没啥特殊控件。
当右击托盘处的图标,选择“聊天”功能,弹出聊天窗口(非模态),刚弹出来不久程序就会出错,我跟踪了一下发现,在弹出聊天窗口之后,我上边提到的自动运行的Dialog更新信息、获取EditBox句柄的时候,把EditBox当成是OleControl了,结果发生0xC0000005访问错误,以下是发生错误的代码(封装在MFC内部的):
Copy code
void CWnd::GetDlgItem(int nID, HWND* phWnd) const
{
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(phWnd != NULL);

    if (m_pCtrlCont == NULL)
        *phWnd = ::GetDlgItem(m_hWnd, nID);
    else
        m_pCtrlCont->GetDlgItem(nID, phWnd);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}

其中:COleControlContainer* m_pCtrlCont;
我跟了的,在弹出聊天窗口以前,系统提取EditBox句柄的时候都是走的if段,而现在它走了else段。
搞了两天了,没搞出来,求高人指点。


[ 此帖被再不斩在2008-04-16 12:03重新编辑 ]


喜欢撼地神牛那足以撼动天地的震地,让敌人绝望的堑壕,和它那战死时性感的哀鸣。
顶端 Posted: 2008-04-16 11:39 | [楼 主]
springdew



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 936
威望: 0
浮云: 0
在线等级:
注册时间: 2005-12-29
最后登陆: 2024-07-12

5come5帮你背单词 [ sly /slai/ a. 狡猾的,狡诈的 ]


对MFC不太了解,搞不懂
楼主给m_pCtrlCont做初始化没有啊,
以前遇到过没初始化的情况,半天找不到错误原因
我一直以为,山是水的故事,云是风的故事,你是我的故事,却不知道我,并不是你的故事......
顶端 Posted: 2008-04-16 11:58 | [1 楼]
再不斩



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1414
威望: 0
浮云: 1413
在线等级:
注册时间: 2005-12-23
最后登陆: 2009-04-26

5come5帮你背单词 [ shade /eid/ n. 荫凉,阴影,(色彩)浓淡,遮光物,罩;vt. 遮蔽,遮光 ]


Quote:
引用第1楼springdew于2008-04-16 11:58发表的  :
对MFC不太了解,搞不懂
楼主给m_pCtrlCont做初始化没有啊,
以前遇到过没初始化的情况,半天找不到错误原因

m_pCtrlCont是系统设置并初始化的,我管不到那里。


喜欢撼地神牛那足以撼动天地的震地,让敌人绝望的堑壕,和它那战死时性感的哀鸣。
顶端 Posted: 2008-04-16 11:59 | [2 楼]
路客与刀客



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
家族: 梦魇图腾
发贴: 1980
威望: 0
浮云: 1186
在线等级:
注册时间: 2007-01-02
最后登陆: 2008-06-29

5come5帮你背单词 [ pumpkin /'pΛmpkin/ n. 南瓜 ]


可以尝试使用DDV机制来控制EditBox。OLE(对象连接与嵌入)是在COM基础之上的极其复杂的内容。如果对COM不熟悉的话,最好还是不要使用。


男人,千万不能让别人看到自己脆弱的一面.
顶端 Posted: 2008-04-16 12:37 | [3 楼]
再不斩



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1414
威望: 0
浮云: 1413
在线等级:
注册时间: 2005-12-23
最后登陆: 2009-04-26

5come5帮你背单词 [ monkey /'mΛŋki/ n. 猴子 ]


Quote:
引用第3楼路客与刀客于2008-04-16 12:37发表的  :
可以尝试使用DDV机制来控制EditBox。OLE(对象连接与嵌入)是在COM基础之上的极其复杂的内容。如果对COM不熟悉的话,最好还是不要使用。

即使EditBox我输入很常规的一些字符串也会出错,好像不是检查的错误。。。


喜欢撼地神牛那足以撼动天地的震地,让敌人绝望的堑壕,和它那战死时性感的哀鸣。
顶端 Posted: 2008-04-16 12:51 | [4 楼]
枫叶刀





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1393
威望: 0
浮云: 1282
在线等级:
注册时间: 2006-03-23
最后登陆: 2009-08-14

5come5帮你背单词 [ fellow /'feləu/ n. 人,家伙,小伙子;a. 同伴的,同类的 ]


给可能解决问题的办法
再添加一个线程用模态弹出聊天窗口,这样可能不会错!
LZ给的资料太少只能给个办法你试试!
顶端 Posted: 2008-04-16 13:28 | [5 楼]
湘D男孩



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 473
威望: 0
浮云: 1105
在线等级:
注册时间: 2006-09-22
最后登陆: 2008-06-29

5come5帮你背单词 [ northeast /'no:θ'i:st/ n. 东北;a. 东北的,在东北的;ad. 向东北 ]


光看上面这点代码有点难发现端倪..
顶端 Posted: 2008-04-16 13:34 | [6 楼]
再不斩



性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1414
威望: 0
浮云: 1413
在线等级:
注册时间: 2005-12-23
最后登陆: 2009-04-26

5come5帮你背单词 [ swan /swon/ n. 天鹅 ]


Quote:
引用第5楼枫叶刀于2008-04-16 13:28发表的  :
给可能解决问题的办法
再添加一个线程用模态弹出聊天窗口,这样可能不会错!
LZ给的资料太少只能给个办法你试试!

我想找到这种问题的根源,因为我在另一个程序里也遇到相同的问题,那个我就只是刷新窗口,没有开什么聊天之类的,也出错了,类似的错误。。。


喜欢撼地神牛那足以撼动天地的震地,让敌人绝望的堑壕,和它那战死时性感的哀鸣。
顶端 Posted: 2008-04-16 13:38 | [7 楼]
枫叶刀





性别: 帅哥 状态: 该用户目前不在线
等级: 鹤立鸡群
发贴: 1393
威望: 0
浮云: 1282
在线等级:
注册时间: 2006-03-23
最后登陆: 2009-08-14

5come5帮你背单词 [ behaviour // n. 行为,表现,(机器等的)运转达情况 ]


非模态刷新就是可能出错,你在多看看吧!
我也遇到过!
顶端 Posted: 2008-04-16 22:00 | [8 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.008311(s) query 5, Time now is:11-22 09:59, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号