Russian Qt Forum

Qt => Общие вопросы => Тема начата: Natalie от Июль 22, 2008, 12:17



Название: изменение в dll без перекомпиляции приложения на Qt
Отправлено: Natalie от Июль 22, 2008, 12:17
Всем здрасти :)

у меня вот такой вопрос есть:

необходимо подключить стороннюю dll к приложению, написанному на Qt. Далее из приложения дергается эта dll. И вопрос в том, возможно ли изменить что-то внутри dll (при этом естественно API остается прежним) и после этого не перекомпиливая приложение его запустить. В самом приложении при этом ничего не будет меняться. Будет ли такая схема работать? Будет ли работать приложение после сделанных изменений в dll?


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: ритт от Июль 22, 2008, 12:32
если бинарная совместимость не нарушится, то работать будет.
интереса ради: зачем это нужно?


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: Natalie от Июль 22, 2008, 12:49
ну например, GUI, проигрывание видео/аудио написано на Qt. И есть какая-то дополнительная функциональность, которая дергается из dll. И эта функциональность будет часто меняться, а само приложение менятся не будет.... вот не хочется всякий раз перекомпиливать

большое спасибо за ответ :)


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: ритт от Июль 22, 2008, 13:36
тогда проблем никаких. простой вариант: дллка и хидер - если в хидере нет серьёзных изменений (не появилось новых виртуальных методов, не пропали старые методы, энумы и т.п.), можно сказать практически наверняка, что аби не нарушается.
если функционал ддлки - это сторонняя разработка, при серьёзном подходе между минорными версиями аби не нарушается. так что, стремитесь и вы придерживаться того же правила )


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: spirit от Июль 22, 2008, 13:37
http://qt.osdn.org.ua/binarycompat.html (http://qt.osdn.org.ua/binarycompat.html)


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: ритт от Июль 22, 2008, 14:08
неплохая статейка, кстати...жаль, неполная


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: spirit от Июль 22, 2008, 14:29
Цитировать
неплохая статейка, кстати...жаль, неполная
англ. вариант полнее.


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: Natalie от Июль 22, 2008, 16:10
хорошая статья! спасибо за ссылочку! :)


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: spirit от Июль 22, 2008, 16:15
надеюсь помогла.  ;)


Название: Re: изменение в dll без перекомпиляции приложения на Qt
Отправлено: SASA от Август 12, 2008, 16:19
Если dll пишется на Qt, то сделать из неё Qt Plugin. Либо написать Plugin-обёртку. Её перекомпиляция не будет занимать много времени.