Chinaunix首页 | 论坛 | 博客
  • 博客访问: 988641
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-23 15:41:08

说CFileDialog有bug,先看一个现象吧:我用的是英文XP, 用的是中文XP,用的是2003
1. 打开windows自带的记事本程序
2. 菜单中选择save as,顺便输入一个名字,比如test.txt,点保存
3. 菜单中选择save as,把鼠标移到test.txt上(不是编辑框里面的test.txt,而是文件list里面的test.txt)
4. 此时整个进程crash掉,如果没有的话,重复第2步(提示:如果鼠标移动速度慢一些,基本上100%crash)

然后我用代码测试,再测试,……,发现不是MFC CFileDialog的问题,而是API GetSaveFileName的问题,代码如下:
void Capp32Dlg::OnBnClickedButton1()
{
    TCHAR m_szFileName[_MAX_PATH] = _T("");
    TCHAR m_szFileTitle[64] = _T("");
    OPENFILENAME a = { sizeof(OPENFILENAME)
                     , this->m_hWnd
                     , (HINSTANCE)0x00400000
                     , 0
                     , 0
                     , 0
                     , 0
                     , m_szFileName
                     , _MAX_PATH
                     , m_szFileTitle
                     , 64
                     , 0
                     , 0
                     , 0
                     , 0
                     , 0
                     , 0
                     , 0
                     , 0
                     , 0 };
    GetSaveFileName( &a );

    //CFileDialog dlg( FALSE );
    //dlg.DoModal();
}
在第二次(或第三次,或……)时,鼠标一旦移动到上次保存的文件上就crash。

-----------------------------------------------------------------------------------------------

说 GetOpenFileName 也一样:不管是保存还是取消,只要移动到上一次对话框退出时最后一次Tip的图标时,都会crash, 快捷方式和目录图标上都不会Crash, 好像只有文件时
1 Open
2 移动鼠标到文件图标上,直到出现黄色的Tip
3 退出
4 再次Open
5 快速移动到上次的那个文件图标上,
6 看看能出现黄色的Tip吗? 祈祷吧

-----------------------------------------------------------------------------------------------

 说 关于Save As 对话框,经过检查,是如下问题造成:

阅读(2109) | 评论(9) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-23 15:42:03

lupy
我在简体xp,与繁体xp中试过,是会当

网友评论2012-11-23 15:41:57

pcasa
不管是保存还是取消,只要移动到上一次对话框退出时最后一次Tip的图标时,都会crash, 快捷方式和目录图标上都不会Crash, 好像只有文件时

网友评论2012-11-23 15:41:49

局部变量
rt

网友评论2012-11-23 15:41:42

arong
不理解,为什么这样会crash?