Проблема с dll-ками Qt |
Здравствуйте, гость ( Вход | Регистрация )
Проблема с dll-ками Qt |
All |
10.9.2009, 1:25
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.9.2009 Пользователь №: 1072 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте всем.
Пишу проект по сетевому программированию на Win32 API. Классы Qt(версия 4.5.0) использую только как вспомагательные (QString, QDomDocument и т.д.), к проекту подключаю библиотеки QtCore4.lib, QtXml4.lib, на своей машине все компилируется и запускается. Дальше захотел отладить сетевое взаимодействие своей программы через виртуальную машину. Скинул на виртуалку копию исполняемого файла и необходимые библиотеки (QtCore4.dll, QtXml4.dll), в таблице импорта и экспорта модулей данные длльки видемы, и проходят тест на подключение. При попытке запуска программы у тотала выскакивает сообщение "Программа не запускается", explorer выдает сообщение "This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem". Стал ковырятся в настройках компилятора, поменял параметр Runtime Library c /Multi-thread DLL (/MD) на /Multi-thread (/MT), программа стала запускатся, но появилась ошибка "The application failed to initialize properly (0xc0150002). Click on OK to terminate the application". Стал проверять на других компах, на одном компе те же самые ошибки, на другом все нормально (Qt на них небыло установленно). Написал тестоваю програмку только с одной функцией LoadLibrary( "QtCore4.dll"), там где были ошибки LoadLibrary возвращал ошибку, при этом функция GetLastError возвращала код ошибки 14001. В MSDN'е 14001 - ERROR_SXS_CANT_GEN_ACTCTX (The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail.) Кто чем может помогите..... Забыл еще сказать, если из исходников исключить переменные и указатели ссылающих на классы Qt, то ошибки пропадают. |
|
|
Litkevich Yuriy |
10.9.2009, 1:44
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Читай здесь (хотя это всё из Асистента )
|
|
|
All |
11.9.2009, 1:15
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 10.9.2009 Пользователь №: 1072 Спасибо сказали: 0 раз(а) Репутация: 0 |
Читай здесь (хотя это всё из Асистента ) Конечно интересная статейка, но в моем случае не подходит. Если в статье написанно верно, то грешить нужно на плагены Qt на которые ссылается модуль QtCore4.dll. На моем компе в переменных окружениях Qt упоминается только как path=..\qt\4.5.0\bin, явной ссылки на каталог с плагенами - \plugins нет, и при этом все работает. Способ решение проблемы описсаный в конце статьи (программно задать пути) тоже не подойдет, потому что программа то не запускается. библиотеки рантайма (msvc*.dll) не забыли скопировать? Набор библиотек в каталоге с программой (msvcp90.dll, msvcr90.dll, QtCore4.dll, QtXml4.dll). вы собрали приложение со статич. рантаймом(/MT), а Qt наверно осталось собранным с динамическим Вы случайно не подскажите как Qt статически привезать? |
|
|
Текстовая версия | Сейчас: 28.12.2024, 17:28 |