Поделиться через


Обновления библиотеки Dynamic-Link

Иногда требуется заменить библиотеку DLL более новой версией. Перед заменой библиотеки DLL выполните проверка версии, чтобы убедиться, что вы заменяете старую версию более новой версией. Можно заменить используемую библиотеку DLL. Метод, используемый для замены используемых библиотек DLL, зависит от используемой операционной системы. В Windows XP и более поздних версиях приложения должны использовать изолированные приложения и параллельные сборки.

Если вы выполните следующие действия, перезагружать компьютер не нужно.

  1. Используйте функцию MoveFileEx , чтобы переименовать заменяемую библиотеку DLL. Не указывайте MOVEFILE_COPY_ALLOWED и убедитесь, что переименованный файл находится на томе, который содержит исходный файл. Можно также просто переименовать файл в том же каталоге, присвоив ему другое расширение.
  2. Скопируйте новую библиотеку DLL в каталог, содержащий переименованную библиотеку DLL. Теперь все приложения будут использовать новую библиотеку DLL.
  3. Используйте MoveFileEx с MOVEFILE_DELAY_UNTIL_REBOOT, чтобы удалить переименованную библиотеку DLL.

Прежде чем выполнить эту замену, приложения будут использовать исходную библиотеку DLL, пока она не будет выгружена. После замены приложения будут использовать новую библиотеку DLL. При написании библиотеки DLL необходимо быть осторожными, чтобы убедиться, что она подготовлена к такой ситуации, особенно если библиотека DLL хранит сведения о глобальном состоянии или взаимодействует с другими службами. Если библиотека DLL не подготовлена к изменению глобальной информации о состоянии или протоколов связи, для обновления библиотеки DLL потребуется перезагрузить компьютер, чтобы убедиться, что все приложения используют одну и ту же версию библиотеки DLL.