Dll'ки Qt, толи трёп, толи философия |
Здравствуйте, гость ( Вход | Регистрация )
Dll'ки Qt, толи трёп, толи философия |
Litkevich Yuriy |
10.5.2009, 11:24
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Несколько раз напарывался на аварийные завершения программ написаных на Qt в том числе Qt Assistant.
И нашёл этому объяснение. Дело в том, что у меня стоит несколько версий Qt. Запуск приложений осуществляется с помощью bat-файлов, задающих окружение. Дак вот положим запустил я свою программу в окружении Qt 4.4.3, а потом решил запустить Qt Assistant (4.5.x) и в момент индексации он валится. Долго немог понять почему. Если закрываю свою программу, то Асистент работает нормально. Мой вывод следующий: Qt***4.dll уже сидит в памяти от 4.4.х, и когда пускается Асистент 4.5.х, то виндовоз ему говорит, что нужная dll'ка уже загружена и находится тут. А там dll'ка предыдущей версии. вот я и думаю, а как вообще будут уживаться вместе разные проги в дистрибутиве которых есть Qt dll'ки? может пофилосовствуем на эту тему? |
|
|
Гость_Гость_* |
10.5.2009, 20:49
Сообщение
#2
|
Гости |
Т.е. путь к dll'ке Виндовоз учитывает? допустим записали в 2 директории ехе файл в одну с длл в другую без, при запущенном первом второй как не запускался, так и не будет запускаться. Вроде так в первом приближении задачи независимы. Каждая ДЛЛ при загрузке проходит через ДллМаин правда есть секции с атрибутом SHARED Джеффри РИХТЕР. Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows (сори за помоечную ссылку) Книга толстая Такие секции нужны что белать всякие межпроцесные взаимодействия типа ActiveQt надо dependency walker поглядеть, может там мешанина из версий грузится, обычно на диске полно копий |
|
|
Текстовая версия | Сейчас: 29.3.2024, 0:36 |