JFK2005
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору VVS89 Цитата: а что значит эта ошибка? либу какую-то найти не может? | Не установлен Visual C++ 2005 Redistributable 2005 или 2008. Установить эти библиотеки можно только под правами админа. Альтернативный вариант - собрать Qt и Creator без привязки к WinSxS: Цитата: Необходимо пропатчить библиотеку msvcr90.dll, прописав mov eax,1 / ret по адресу 0x21BE0. ( По этому адресу располагается начало функции _check_manifest, от которой, собственно - всё зло ). В общем, для msvcr90.dll прописываем hex-редактором комбинацию байт B8 01 00 00 00 C3 по адресу 0x21BE0 (для msvcr80.dll соответствующим адресом будет 0x1D76). Компилим проект без манифеста, бросаем dll'ки в папку с программой... всё, как в старые, добрые времена. Запускаем программу, всё работает без manifest hell и vc redist'ов. edit: Проверено на билдах 8.0.50727.3053, 9.0.21022.8, 9.0.30729.1. Адрес _check_manifest не меняется в пределах одной версии vc++ runtime. Если он изменится в будущих билдах, не составит никаких трудов его найти. Находим первый вызов GetSystemDirectoryW, затем поднимаемся немного выше до начала функции (mov edi,edi / push ebp). Само собой, для использования исправленной crt в Qt-приложениях придётся перекомпилировать Qt, прописав в файле mkspecs\win32-msvc2008\qmake.conf в строке QMAKE_LFLAGS дополнительный ключ /MANIFEST:NO. |
Цитата: Пересобрал Qt 4.4.3 следующим образом: - удалил всё содержимое из файлов embed_manifest_dll.prf и embed_manifest_exe.prf (они лежат в Qt\4.4.3\mkspecs\features\win32\); - в qmake.conf прописал QMAKE_LFLAGS = /NOLOGO /MANIFEST:NO (файл находится в директории Qt\4.4.3\mkspecs\win32-msvc2008\); - запустил configure / nmake. Сделал пробный Qt-проект из одного диалога, в настройках указал Generate Manifest: No и Embed Manifest: No. В папку с скомпилированным exe-файлом положил QtCore4.dll, QtGui4.dll, msvcp90.dll и пропатченный msvcr90.dll. Всё работает без установки VC++ Redist - проверено на чистой WinXP SP3. | Метод успешно опробован и работает. | Всего записей: 2084 | Зарегистр. 26-10-2005 | Отправлено: 23:40 17-04-2009 | Исправлено: JFK2005, 23:46 17-04-2009 |
|