Windows 8 视窗-8及;Internet Explorer-10破坏了我的ActiveX控件绘图?
在“Windows 8”操作系统和浏览器“Microsoft Internet Explorer 10”上运行Active-X控件时,我遇到了一个非常奇怪的行为 控件: 我的Active-X control是一款非常稳定的产品,我的公司已经在数百名快乐的客户之间分销了几年。控件是一个ATL自定义绘图控件,用C++编写,并用“Visual Studio 2008”构建。p> 问题–图形消失: 当我第一次按下打开控件的链接时,我可以看到我的控件正在逐渐绘制(因为我的数据加载有时很慢),但最终所有的图形都消失了,在控件所在的位置留下一个空白的白色背景色 使用“Spy++”,我可以看到我的控件确实存在,但它的所有画面都消失了。 如果我移动浏览器或更改其大小,控件将被重新绘制,否则它将不可见 我试图调试这个问题,并找出谁正在删除我的绘图。 我想出了以下技巧:Windows 8 视窗-8及;Internet Explorer-10破坏了我的ActiveX控件绘图?,windows-8,activex,windbg,internet-explorer-10,Windows 8,Activex,Windbg,Internet Explorer 10,在“Windows 8”操作系统和浏览器“Microsoft Internet Explorer 10”上运行Active-X控件时,我遇到了一个非常奇怪的行为 控件: 我的Active-X control是一款非常稳定的产品,我的公司已经在数百名快乐的客户之间分销了几年。控件是一个ATL自定义绘图控件,用C++编写,并用“Visual Studio 2008”构建。p> 问题–图形消失: 当我第一次按下打开控件的链接时,我可以看到我的控件正在逐渐绘制(因为我的数据加载有时很慢),但最终所有的图
user32!FillRect
MSHTML!memcpy+0x9805
MSHTML!COmWindowProxy::SwitchMarkup+0x468
MSHTML!CMarkup::SetInteractiveInternal+0x428
MSHTML!CMarkup::RequestReadystateInteractive+0x98
MSHTML!CMarkup::BlockScriptExecutionHelper+0xde
MSHTML!CHtmPost::Exec+0x794
MSHTML!CHtmPost::Run+0x1c
MSHTML!PostManExecute+0x5f
MSHTML!PostManResume+0x7b
MSHTML!CHtmPost::OnDwnChanCallback+0x3a
MSHTML!CDwnChan::OnMethodCall+0x19
MSHTML!GlobalWndOnMethodCall+0x169
MSHTML!GlobalWndProc+0xd7
user32!InternalCallWinProc+0x23
user32!UserCallWinProcCheckWow+0x100
user32!DispatchMessageWorker+0x3ef
user32!DispatchMessageW+0x10
IEFRAME!CTabWindow::_TabWindowThreadProc+0x981
IEFRAME!LCIETab_ThreadProc+0x378
iertutil!CIsoWinMsg::PostQueuedMessagesToComponent+0x4b
IEShims!NS_CreateThread::DesktopIE_ThreadProc+0x66
KERNEL32!BaseThreadInitThunk+0xe
ntdll!__RtlUserThreadStart+0x72
ntdll!_RtlUserThreadStart+0x1b
这是一致的。
检查此堆栈时,我发现此消息属于internetexplorer\u Hidden
类窗口,该窗口大小为0(0x0)
,但样式为WS\u VISIBLE
。此窗口属于浏览器
有人知道这种现象吗?
浏览器隐藏窗口是否可能导致此问题?
你能推荐另一种方法来寻找正在擦除我的绘图的堆栈吗
谢谢你的提示
Paz报价结论:
错误出现在Microsoft Internet Explorer 10
我使用Microsoft支持服务来进一步调查这个问题。随函附上调查结果:
Microsoft支持人员查看了my IE的版本(Internet Explorer
),并建议首先将IE升级到其最新补丁
碰巧的是,我正在使用的机器在一段时间内没有设置为由Windows Update
服务自动更新。作为IE升级的一部分,我必须首先使用windows update
服务将windows更新为其最新补丁
在Windows Update
过程中,Microsoft Internet Explorer 10
自动更新为其最新补丁。
IE更新后,问题就消失了。
此外,ActiveX GUI加载过程变得更快
Microsoft Internet Explorer 10的旧版本导致了以下问题:
- 版本:10.0.9200.16384
- 更新版本:RTM(KB2718695)
- 版本:10.0.9200.16635
- 更新版本:10.0.7(KB2846071)
谢谢,Pazo这是GDI句柄泄漏的常见迹象,这是一个可能长时间未被发现的错误。我不确定GDI句柄泄漏是否与此问题有关,因为(a)问题发生在我第一次启动浏览器并打开AXCtrl时,以及(b)在这一阶段,整个IE过程中GDI对象的总数大约为70个,这听起来并不多(除非我遗漏了什么)。好吧,这表明我们没有好的方法为您调试代码。如果您自己无法调试,请使用Microsoft支持。