碧水蓝天

不登高山,不知云之高;不临深渊,不知地之厚也

导航

<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

统计

公告

目前从事视频会议系统开发

留言簿(1)

随笔分类

随笔档案

文章分类

文章档案

视频会议相关

软件工程/软件设计

搜索

最新评论

阅读排行榜

评论排行榜

CFileDialog的bug

一段打开文档的代码,前一段时间好好地,今天突然出问题了.Access violation 的异常,跟踪发现出在CFileDialog析构的时候.
测试环境:winxp pro + sp2;
编译:vc6.0+sp5;
void CTestFile::OnOpen()
{
  char szFilter[256] = {0};
  lstrcpy(szFilter, "WMV File (*.wmv)|*.wmv|");
  lstrcat(szFilter, "媒体文件 (媒体类型)|*.wmv;*.avi;*.mpeg;*.mpg;*.asf||");

   CFileDialog dlg(TRUE, NULL, NULL, OFN_PATHMUSTEXIST | OFN_HIDEREADONLY, szFilter, this);
   if(dlg.DoModal() == IDOK)
  {
   }
 }
搞了好久,才找到原因,就是因为在stdafx.h中加了下面的两个宏;
#define WINVER 0x0500
#define _WIN32_WINNT 0x0500
去掉这两个宏的话,没问题.
如果非要用高版本的platform sdk的话,下面的方法也是一个解决办法.

void CTestFile::OnOpen()
{
 char szFilter[256] = {0};
 lstrcpy(szFilter, "WMV File (*.wmv)|*.wmv|");
 lstrcat(szFilter, "媒体文件 (媒体类型)|*.wmv;*.avi;*.mpeg;*.mpg;*.asf||");

 CFileDialog *pFileDlg = new CFileDialog(TRUE, NULL, NULL, OFN_PATHMUSTEXIST | OFN_HIDEREADONLY, szFilter, this);
 if(pFileDlg)
 {
     pFileDlg->DoModal();
     delete pFileDlg;
     pFileDlg = NULL;
   }
}

 

posted on 2006-07-27 18:39 碧水蓝天 阅读(7143) 评论(10)  编辑 收藏

评论

# re: CFileDialog的bug 2006-07-28 10:26 pAnic

测试了楼主的代码,没有任何问题。
vc6sp5 win2kpro sp4.

# re: CFileDialog的bug 2006-07-28 10:34 碧水蓝天

我的测试环境是winxp pro+sp2 vc6+sp5

# re: CFileDialog的bug 2006-07-28 10:40 周星星

也不说一下是哪个版本的vc++的CFileDialog

# re: CFileDialog的bug 2006-08-07 09:54 碧水蓝天

补上了:)

# re: CFileDialog的bug 2006-08-13 21:31 HYJ

我的测试环境是winxp pro+sp2 vc6+sp5 ,同你一样。
没有任何问题。
编译成Release的各种版本Default、MaxSpeed、MinSize等等,都没有发现你说的bug。
将两行宏定义改变了各种位置,也没有发现你说的bug。

# to HYJ: 2006-08-15 18:43 碧水蓝天

编译成Release的话,我测试的时候会偶尔出错,不知在你那是否有问题。而DEBUG每次都出错。

# re: CFileDialog的bug 2006-09-06 13:53 sdsd

你的文章非常精彩,秀逗邀请您加入秀逗博客联盟.中国最大最专业的博客推荐联盟,秀逗博客联盟不截取流量,推荐后的文章指向作者本人的BLOG,文章24小时循环首页展示,真正意义上迅速提升你的博客流量!欢迎注册,注册后将推荐代码添加到自己的BLOG相应位置即可轻松推荐文章,让更多人分享你的文章!后期更有秀逗市场、同心琐秀、商业联盟以及社区陆续登场,更多娱乐功能、商业展示机会,完全免费使用,名人博客,不用再眼红,使用秀逗推荐,流量迅速上升,好的博客,秀逗为您宣传!地址:http://www.sodooo.com

# re: CFileDialog的bug 2007-08-27 10:51 zhaoyang0618

见鬼, 今天我也遇上这个问题, 谢谢您的文章.

# re: CFileDialog的bug 2007-10-23 11:11 xiaoshaoping

兄弟,太谢谢
大家多分享经验.

# re: CFileDialog的bug 2008-02-16 10:33 dee

建议看看这篇文章对您会有帮助的 http://www.150it.cn/bianchengwendang/VC/5847313375.html

标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]