本文介绍了应用程序挂在Windows 7(64位)上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

具有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位)上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 00:40