【发布时间】:2014-08-05 14:45:08
【问题描述】:
我非常感谢您对此的帮助。我花了几个小时试图解决它。
我用 VCPP6 编写了一个小扩展(是的,我知道。无需告诉我),在 XP 下使用 IExtractImage 在资源管理器中将特定 DOS 文件的内容显示为缩略图。调试证明很容易——我关闭了资源管理器并按了 F5。单击所需类型的文件会生成缩略图。断点都处于活动状态。
升级到 VS2012(VS2013 Express 也是如此)并使用 IThumbnailProvider,相同的顺序不起作用。
程序本身有效。我可以在 7 和 8.1 中显示缩略图。我不能做的是通过资源管理器调试它。我可以使用 SDK (ThumbnailProvider) 中的示例进行调试,但不能使用 Explorer。
项目设置为:
Debugging->Command: C:\Windows\explorer.exe
Debugging->Command Arguments: /e,/select,F:\NewWork\NSD-24kW\pcb\15300003.pcb
Debugging->Working Directory: $(ProjectDir) (I've tried $(OutDir) too)
Debugging->Attach: No (I've tried 'yes' too)
Debugging->Debugger Type: Native Only
Debugging->Environment: (not set)
Debugging->Merge Environment: Yes
搜索我能想到的用于调试 shell 扩展的每一个变体,并尝试我能找到的指导的所有可能变体,但它仍然没有看到断点。
【问题讨论】:
-
扩展现在可能由 dllhost.exe 而不是 explorer.exe 托管。您可以使用 systinternals 的 procexp.exe 工具查找:technet.microsoft.com/en-us/sysinternals/bb896653.aspx
-
嗨,西蒙。感谢您的建议。使用 ProcessExplorer,当我单击文件时会弹出 dllhost.exe 然后消失。我已经尝试了所有明显的东西以及我可以通过谷歌搜索找到的所有想法,但仍然没有启用断点。哼哼。
标签: windows visual-c++ visual-studio-debugging shell-extensions