Dynamic-Link 库汇报
有时需要将 DLL 替换为较新版本。 在替换 DLL 之前,请执行版本检查,以确保将旧版本替换为较新版本。 可以替换正在使用的 DLL。 用于替换正在使用的 DLL 的方法取决于所使用的操作系统。 在 Windows XP 及更高版本上,应用程序应使用 独立应用程序和并行程序集。
如果执行以下步骤,则无需重新启动计算机:
- 使用 MoveFileEx 函数重命名要替换的 DLL。 不要指定MOVEFILE_COPY_ALLOWED,并确保重命名的文件位于包含原始文件的同一卷上。 还可以通过为同一目录中的文件提供不同的扩展名来重命名该文件。
- 将新 DLL 复制到包含重命名 DLL 的目录。 现在,所有应用程序都将使用新的 DLL。
- 将 MoveFileEx 与 MOVEFILE_DELAY_UNTIL_REBOOT 配合使用可删除重命名的 DLL。
在进行此替换之前,应用程序将使用原始 DLL,直到卸载它。 进行替换后,应用程序将使用新的 DLL。 编写 DLL 时,必须小心确保它已准备好应对这种情况,尤其是在 DLL 维护全局状态信息或与其他服务通信时。 如果 DLL 未准备好更改全局状态信息或通信协议,更新 DLL 需要重新启动计算机,以确保所有应用程序都使用同一版本的 DLL。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈