Название: Вопрос по поводу версий DLL Отправлено: dr_Begemot от Апрель 30, 2009, 14:53 Возник вопрос по поводу версий...
К примеру я создаю библеотеку с версией 1, появляется файл dll1.dll Создаю приложение использующее dll1.dll Далее, изменяю версию библиотеки на 2, компилю. Далее удаляю файл dll1.dll и запускаю приложение. Возникает ошибка, что dll1.dll не найдена. Вопрос такой, почему приложение не использует библиотеку с более высокой версией? Или я что-то не так делаю? Название: Re: Вопрос по поводу версий DLL Отправлено: Eugene Efremov от Апрель 30, 2009, 18:50 Это сделано специально. Изменение старшего номера версии должно указывать на отсутствие бинарной совместимости с предыдущей, поэтому — оно будет создавать dll с другим именем (dll1.dll, dll2.dll и т.д.). Приложение же ищет dll именно по имени файла.
Иными словами — если изменения в dll не ведут к потери совместимости (т.е. все интерфейсы и смещения остались прежними), то нужно заменить новым существующий dll (т.е. новая весрия должна быть не 2.0.0, а, допустим, 1.0.1). Если же изменения несовместимы — нужно сменить старший номер, получить новый dll и, для вступления изменений в силу, пересобрать заново весь использующий библиотеку софт. |