反复加载和卸载Deskband SDK示例时崩溃 [英] Deskband SDK Sample crashes when repeatedly loaded and unloaded
问题描述
嗨!
在测试从Windows 7 SDK桌面示例中派生的桌面时,我遇到了一个问题,类似于http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/3663de60-be1d- 4a90-aca6-1b88b7a0a41a.
While testing a deskband derived from the windows 7 sdk deskband sample, I came across an issue, similar to http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/3663de60-be1d-4a90-aca6-1b88b7a0a41a.
当反复显示和隐藏桌面(无论是样品还是我自己的)时,资源管理器在第四次(至少对我而言)后挂起,几秒钟后坠入:
When repeatedly showing and hiding the deskband (the sample as well as my own) the explorer hangs after the fourth time (for me at least) and after a few seconds crashes into:
88e850e8()
explorer.exe!BandSite_SaveView() + 0x29字节
CTray :: __ SaveTrayStuff() + 0xdf字节
CTray :: __ SaveTrayAndDesktop() + 0xb字节
CTray :: _ HandleTimer() + 0x46203字节
CTray :: v_WndProc() + 0xcaa4字节
CImpWndProc :: s_WndProc() + 0x42字节
user32.dll!_InternalCallWinProc@20() + 0x23字节
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3字节
user32.dll!_DispatchMessageWorker@8() + 0xe6字节
user32.dll!_DispatchMessageW@4() + 0xf字节
CTray :: _ MessageLoop() + 0x191字节
CTray :: MainThreadProc() + 0x57字节
shlwapi.dll!WrapperThreadProc() + 0xd3字节
kernel32.dll!@ BaseThreadInitThunk @ 12() + 0x12字节
ntdll.dll!___ RtlUserThreadStart @ 8() + 0x27字节
ntdll.dll!__ RtlUserThreadStart @ 8() + 0x1b字节
88e850e8()
explorer.exe!BandSite_SaveView() + 0x29 bytes
explorer.exe!CTray::_SaveTrayStuff() + 0xdf bytes
explorer.exe!CTray::_SaveTrayAndDesktop() + 0xb bytes
explorer.exe!CTray::_HandleTimer() + 0x46203 bytes
explorer.exe!CTray::v_WndProc() + 0xcaa4 bytes
explorer.exe!CImpWndProc::s_WndProc() + 0x42 bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb3 bytes
user32.dll!_DispatchMessageWorker@8() + 0xe6 bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
explorer.exe!CTray::_MessageLoop() + 0x191 bytes
explorer.exe!CTray::MainThreadProc() + 0x57 bytes
shlwapi.dll!WrapperThreadProc() + 0xd3 bytes
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
发生访问冲突-从堆栈跟踪中猜测是由于某个函数试图定期保存托盘状态而无法执行的.
with an access violation -- which, guessing from the stack trace is due to a function that tries to save the tray status in an regular interval but cannot do so.
我已经编译了一个版本,其中http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/3663de60-be1d-4a90-aca6-1b88b7a0a41a和DisableThreadLibraryCall中提到的更改已注释掉,因为它使用Visual与CRT静态链接 Studio 2010 SP1.台式带在Win 7 64位环境下进行了测试.
I've compiled a version with the changes mentioned in http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/3663de60-be1d-4a90-aca6-1b88b7a0a41a and DisableThreadLibraryCall commented out, as it is statically linked against the CRT, using Visual Studio 2010 SP1. The deskband was tested under Win 7 64 Bit.
非常感谢任何帮助(首先是如何进一步调试它)!
Any help (in the first place on how to further debug this) would be very much appreciated!
谢谢.
ps:我已经(几乎)发布了与http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/3663de60-be1d-4a90-aca6-1b88b7a0a41a答案相同的问题,但在此处重新发布以引起更多关注(我不知道是否有人重读了旧帖子...).
p.s.: I've posted (nearly) the same question as an answer to http://social.msdn.microsoft.com/Forums/en-US/windowssdk/thread/3663de60-be1d-4a90-aca6-1b88b7a0a41a, but reposted here to get a more attention (I don't know if anyone rereads the old posts ...).
推荐答案
我遇到了同样的崩溃,第4次卸载CRASH!
I came to the same crash, the 4th unload CRASH!
这篇关于反复加载和卸载Deskband SDK示例时崩溃的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!