Windows XP更新安全补丁后我的程序不能使用了,好像是CreateDialog这块出错,大家帮我看看。

shanminmin 2006-11-12 06:27:54
大约10月份的一个更新,更新后我做的程序就不能运行了,后来我查了一下,是一个CreateDialog出现错误。
代码如下:

//创建应用程序主窗口
hMainWnd=CreateWindow(L"mt",L"mt",WS_POPUPWINDOW,0,0,FORM_WIDTH,FORM_HEIGHT,NULL,NULL,hInstance,NULL);
if(hMainWnd==NULL)
{
MessageBox(NULL,L"创建主窗口时发生错误!",L"错误信息",MB_OK|MB_ICONSTOP);
return false;
}

//显示欢迎屏
hSplash=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_SPLASH),hMainWnd,(DLGPROC)SplashDlgProc);
//DWORD err=GetLastError();
if(hSplash==NULL)
{
MessageBox(NULL,L"创建Splash窗口时发生错误!",L"错误信息",MB_OK|MB_ICONSTOP);
return false;
}

程序的大致意思是创建主窗口时显示一个splash屏幕显示进入的进度,以前完全正常,现在在hSplash=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_SPLASH),hMainWnd,(DLGPROC)SplashDlgProc); 返回的hSplash是NULL,但是DWORD err=GetLastError();取回的却是0。

实在是搞不明白,请大家讨论一下。

PS:那个更新在系统还原中显示"Software Distribution Service 2.0",如果没有显示这个更新的机器上使用没有问题,只要有这个的就会出错。

另,我测试了一下,如果我跳过splash这段后,程序中所有使用CreateWindow创建的按钮都没有,我想也应该是这个错误导致的。
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanminmin 2006-11-13
  • 打赏
  • 举报
回复
我主窗口使用的控件只有 STATIC msctls_progress32 BUTTON COMBOBOX EDIT,其他的没有使用。另外我查了一下KB923191,里面更新了comctl32.dll文件,更新前版本是2180,更新后是2982. 现在是在2180版本下肯定什么问题没有,但是在2982下就出错。
alvachien 2006-11-13
  • 打赏
  • 举报
回复
CreateDialog其实在后台调用CreateWindows,这个函数应该是不会有问题的。

我怀疑是你的窗口上的控件的问题,打上Patch之后,可能有些Control出问题了。因为CreateWindow的时候它会创建所有的Controld
shanminmin 2006-11-13
  • 打赏
  • 举报
回复
刚刚测试结果为,打上KB923191补丁后出现这个问题。难道大家都没有遇到嘛?
shanminmin 2006-11-12
  • 打赏
  • 举报
回复
我跟过,在CreateDialog时。进入过SplashDlgProc3次,记得有一个是设置字体的,另外两个不记得是什么消息了,反正最终也没有发到SplashDlgProc 初始化的消息。
DentistryDoctor 2006-11-12
  • 打赏
  • 举报
回复
应该不会吧?

跟踪一下,看具体是哪一步出的问题?
完全原创的一个java俄罗斯方块游戏,实现了网络对战、道具使用、背景音乐播放、音效播放等功能。但网络对战和道具使用部分尚有些小问题,仍需要测试,因为没时间做了,发上来供大家下载,如果哪位有兴趣,想一起研究,可发邮件至lijiangui2002@163.com 类列表: backgroundmusic.java背景音乐播放类 blockcanvas.java方块类 bomp.java炸弹类(炸弹的消行规则是坠毁所占行数的方块) control.java主类 createdialog.java对话框类 data.java游戏与地图数据接口 gamecontrol.java游戏控制类 imagecapture.java图像采集与发送类 imageshow.java图像接收与显示类 jframe.java界面GUI类 nextpanel.java下一个方块画布类 soundeffect.java音效播放类 -------------------------------------------------------------------- 说明,内含编译好的j可执行jar程序,在正确安装jre的计算机上双击游戏程序即可运行,如果没有正确安装jre,可以编译游戏源文件运行。游戏主类为control.java ---------------------------------- 最初开发时,我把它定义一个比较有创意的游戏,但是最终因为没有时间而作罢,我的目的是游戏能够利用道具进行网络对攻,以增加游戏的趣味性。因为时间,我只设计出一种道具——炸弹,更糟糕的是,这唯一的一种道具都没有实现网络对攻, 只能随机地出现,这是让我很遗憾的地方。所以,哪位朋友对这个游戏有兴趣的话,咱们可以共同研究研究

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧