【发布时间】:2016-09-21 05:27:36
【问题描述】:
我创建了一个Shell 扩展,它为文件和文件夹添加了图标覆盖。但是,在我的系统上使用 OneDrive for Business 时,我遇到了问题。当我打开 OneDrive 共享文件夹时,资源管理器崩溃并出现错误:
只有当我取消注册我的 Shell 扩展时,该问题才会得到解决。我尝试调试崩溃,发现它根本没有引用我的扩展 dll:
我的扩展程序有问题吗?还是这是微软的问题?注册的叠加层数低于限制。我什至尝试重命名 OneDrive 覆盖以赋予它们优先级,但问题仍然存在。
【问题讨论】:
-
Shell 扩展被加载到 explorer.exe 进程空间。如果您的扩展程序崩溃或调用
exit(),它会带上资源管理器。 -
我的扩展程序有问题吗? 可能。 Explorer 经过了很好的测试,所以我认为它是微软的错的可能性很低。没有代码,这里没有人可以肯定地回答。
-
@RyanBemrose 在我的情况下,它在崩溃前没有进入我的 Shell 扩展 Dll。访问 OneDrive for Business 文件夹会导致崩溃。
-
你能确定它没有进入你的分机吗?在没有加载扩展程序的情况下会发生崩溃吗?您是否在每个入口点都有跟踪? FWIW,仅仅因为您的代码不在上面打印的调用堆栈上并不意味着您的代码中的错误没有在某处损坏内存。
标签: windows windows-shell shell-extensions