您的位置:首页 > 运维架构 > Shell

shell扩展的调试问题

2007-03-22 13:30 260 查看
1、Shell 扩展是被 Explorer 调用起来的,所以,首先要把你的工程的调式进程设置为 Explorer.exe。

2、由于当 Shell 扩展被 Explorer 调用后, 它会在内存中呆上一段时间, 这会使你无法重新编译并生成Shell 扩展 DLL 文件。

对于 Windows 9x,要让 Explorer 更迅速地卸载 Shell 扩展执行文件,需要创建如下注册表项:
HKLM/Software/Microsoft/Windows/CurrentVersion/Explorer/AlwaysUnloadDLL
并将其值设为 "1"。

而在 Windows NT/2000上, 你可以找到如下键:
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer
并创建一个名为 DesktopProcess 的 DWORD 值,将该值设置为 1。这会使桌面和任务栏运行在一个进程中, 而其他每一个 Explorer 窗口都运行在它各自的一个进程内. 也就是说,你可以在单个的 Explorer 窗口内进行调试, 而后只要你关闭该窗口,你的 DLL 就会被马上卸载, 这就避免了因为 DLL 正被 Windows 使用而无法替换更新。而如果不幸出现这种情况,你就不得不注销登录后再重新登录进 Windows 从而强制卸载使用中的 Shell 扩展 DLL。

3、现在,正常在 DLL 工程中设置断点,点击调试按钮,待到 Explorer 窗口出现时,找到某个 TXT 文件,右击即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: