问题描述
具有DHTML编辑器的MFC应用程序在Windows XP上成功运行,但在Windows 7(64位)上失败。应用程序在选项卡之间切换时挂起。已使用windbg收集和分析使用过程资源管理器转储。它显示以下调用
stack
The MFC application having DHTML editor runs successfully on windows XP but it fails on windows 7(64bit). The application hangs while switching between tabs. Using process explorer dump has been collected and analyzed using windbg. It shows following call stack
FAULTING_IP:
+ 0
00000000`00000000 ??             ???
EXCEPTION_RECORD: ffffffffffffffff - (.exr 0xffffffffffffffff)
异常地址:0000000000000000
ExceptionCode:80000003(休息指令例外)
ExceptionFlags:00000000
NumberParameters:0
FAULTING_THREAD: 0000000000000780
$
DEFAULT_BUCKET_ID: CORRUPT_MODULELIST
$
PROCESS_NAME:app.exe
OVERLAPPED_MODULE:'PortableDeviceApi的地址区域'和'wkscli'重叠
ERROR_CODE:(NTSTATUS)0x80000003 - {EXCEPTION} 断点 已达到断点。
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
$
PRIMARY_PROBLEM_CLASS: CORRUPT_MODULELIST
BUGCHECK_STR: APPLICATION_FAULT_CORRUPT_MODULELIST_OVERLAPPED_MODULE
LAST_CONTROL_TRANSFER: 从0000000076a38165到0000000076a37e47
STACK_TEXT:
0018f0f0 76a38165 00c4a860 00000000 00000000 user32!NtUserGetMessage + 0x15
0018f110 747e7cec 00c4a860 00000000 00000000 user32!G etMessageA + 0xa1
0018f198 00413bfc 8918be15 04839358 00000050 mfc80!AfxInternalPumpMessage + 0x18 [f:\sp\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153]
0018f514 004d708a 00000000 00000003 04839358 app!CMyPntPropDlg :: DoPropBtn + 0x1ac
FAULTING_IP:
+0
00000000`00000000 ?? ???
EXCEPTION_RECORD: ffffffffffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0000000000000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0
FAULTING_THREAD: 0000000000000780
DEFAULT_BUCKET_ID: CORRUPT_MODULELIST
PROCESS_NAME: app.exe
OVERLAPPED_MODULE: Address regions for 'PortableDeviceApi' and 'wkscli' overlap
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
PRIMARY_PROBLEM_CLASS: CORRUPT_MODULELIST
BUGCHECK_STR: APPLICATION_FAULT_CORRUPT_MODULELIST_OVERLAPPED_MODULE
LAST_CONTROL_TRANSFER: from 0000000076a38165 to 0000000076a37e47
STACK_TEXT:
0018f0f0 76a38165 00c4a860 00000000 00000000 user32!NtUserGetMessage+0x15
0018f110 747e7cec 00c4a860 00000000 00000000 user32!GetMessageA+0xa1
0018f198 00413bfc 8918be15 04839358 00000050 mfc80!AfxInternalPumpMessage+0x18 [f:\sp\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 153]
0018f514 004d708a 00000000 00000003 04839358 app!CMyPntPropDlg::DoPropBtn+0x1ac
两个操作系统上的MFC80.dll版本相同ie8.0.50727.762 。
The MFC80.dll version on both OS is same i.e.8.0.50727.762.
CMyPntPropDlg是应用程序的一部分。应用程序在属性页上有一个包含一个DHTML控件和丰富的编辑文本控件的对话框。
函数DoPropBtn使用DoModal函数显示对话框。经过进一步调查后,我发现在
选项卡之间切换时,2个窗口即DHTML和Rich Edit Text ShowWindow API用于隐藏其中一个如果我为其中一个控件注释该代码,那么它可以正常工作。
如果showwindow API在Windows 7和其他操作系统上的行为不同。
还有一件事要补充说,控件DHTML是从微软的网站上下载的,因为它没有附带在Windows 7中。
One more thing would like to add that the control DHTML is downloaded from Microsoft's site as it is not shipped with windows 7.
当试图为此控件应用程序挂起时调用showwindow。
when trying to call showwindow for this control application hangs.
有人可以提供进一步处理的方法。
Can someone please provide a way to proceed further.
谢谢,
Sujata。
推荐答案
这篇关于应用程序挂在Windows 7(64位)上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!