Windows XP更新安全补丁后我的程序不能使用了,好像是CreateDialog这块出错,大家帮我看看。
大约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创建的按钮都没有,我想也应该是这个错误导致的。