c++ - DLL注册和注销

标签 c++

我创建了一个上下文菜单 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/

相关文章:

c++ - 如何在 C++ 中输出 2013 年 12 月 8 日的日期

c++ - 我应该为 memcpy 和 realloc 包含什么标题?

C++ 宏不会替换所有值

c++ - 为什么一个简单的程序不能立即启动

C++: 'adding references' 到命名空间(和类库)?

c++ - 指针变量有什么作用?

c++ - 未解析的外部符号(涉及带有自定义类的模板)

c++ - 使用模板可以对类型(std::plus,std::minus)之类的对称关系建模吗?

c++ - 计算 View 偏移以在鼠标光标的位置放大

c++ - 将 PUNICODE_STRING 写入文件,得到垃圾数据