我创建了一个上下文菜单 DLL(C++ COM DLL)来显示图标覆盖(使用 IShellIconOverlayIdentifier 接口(interface))。为了最初显示图标覆盖,我重新启动了资源管理器。如果系统重新启动,要显示图标叠加,我需要手动注册dll并再次重新启动资源管理器。
有没有办法在资源管理器启动之前注册我的 com dll。 ??
此外,如果我卸载应用程序,则无法删除 DLL。要删除该 dll,我需要停止资源管理器和其他使用我的 dll 的应用程序(例如雷鸟、Visual Studio),然后取消注册该 dll。然后只有我才能删除该Dll。这是正确的吗?或者我还能做些什么。
提前致谢。
最佳答案
我想知道为什么每次重新启动系统时都必须注册 DLL。 另一方面,您必须重新启动 explorer.exe 和相关程序才能让更改(尤其是由 shell 扩展完成的更改)生效,这是很正常的。
此外,删除时遇到的行为是当您想要删除 shell 扩展 DLL 时必须执行的标准过程。
关于c++ - DLL注册和注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3138527/