Russian Qt Forum
Ноябрь 23, 2024, 14:36 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Вопрос по поводу версий DLL  (Прочитано 2756 раз)
dr_Begemot
Гость
« : Апрель 30, 2009, 14:53 »

Возник вопрос по поводу версий...

К примеру я создаю библеотеку с версией 1, появляется файл dll1.dll
Создаю приложение использующее dll1.dll

Далее, изменяю версию библиотеки на 2, компилю.
Далее удаляю файл dll1.dll и запускаю приложение. Возникает ошибка, что dll1.dll не найдена. Вопрос такой, почему приложение не использует библиотеку с более высокой версией? Или я что-то не так делаю?
Записан
Eugene Efremov
Гость
« Ответ #1 : Апрель 30, 2009, 18:50 »

Это сделано специально. Изменение старшего номера версии должно указывать на отсутствие бинарной совместимости с предыдущей, поэтому — оно будет создавать dll с другим именем (dll1.dll, dll2.dll и т.д.). Приложение же ищет dll именно по имени файла.

Иными словами — если изменения в dll не ведут к потери совместимости (т.е. все интерфейсы и смещения остались прежними), то нужно заменить новым существующий dll (т.е. новая весрия должна быть не 2.0.0, а, допустим, 1.0.1). Если же изменения несовместимы — нужно сменить старший номер, получить новый dll и, для вступления изменений в силу, пересобрать заново весь использующий библиотеку софт.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 20.