Могу ли я развернуть Windows 2000, используя Qt 4.8.4?

Я создал приложение с использованием Qt 4.8.4, и теперь я должен распространять его на компьютерах с Windows 2000, среди прочих. Я уже пытался найти в Интернете четкое объяснение, но я не могу найти подтверждение того, что более старая версия Windows на самом деле поддерживается Qt.

Приложение отлично работает на Windows XP (32- и 64-разрядной) и Windows 7, но, когда я пытаюсь запустить его на Windows 2000, я получаю известную ошибку «[Имя приложения] .exe не является приложением win32.«, и я предполагаю, что ошибка связана с неподдерживаемой версией Windows.

Приложение «простое», ему просто нужны QtCore4.dll и QtGui4.dll в качестве зависимостей.

Если это может помочь, я занимаюсь разработкой на 64-битной машине с Windows 7, используя Qt 4.8.4 и Qt Creator 2.7.1. Если я иду в Сервис-> Параметры-> Построить&Run-> Kits-> Manual-> Desktop, в качестве используемого компилятора используется «Microsoft Visual C ++ Compiler 10.0 (x86)». Должен ли я выбрать другой, может быть?

Спасибо за любой ответ.


РЕДАКТИРОВАТЬ: What I've done after reading @vahancho's answer:

  • «Переместить» проект из Qt Creator в Visual Studio 2010, используя CMake;
  • Установите Visual Studio Express 2008 (таким образом, включив набор инструментов платформы V90)
  • Откройте проект из VS2010 и перейдите в Свойства проекта-> Свойства конфигурации-> Общие и измените Набор инструментов платформы на V90;
  • Перекомпилировать проект;

Теперь я попытался запустить приложение, скомпилированное таким образом, на виртуальной машине, монтируя Windows 2000, но на этот раз я получил другую ошибку: «Не удалось найти точку входа в процедуру DecodePointer в библиотеке динамических ссылок KERNEL32.dll».

1

Решение

Что ж, после некоторых исследований я обнаружил, что запуск приложений MSVC10 в Windows 2000 невозможен. Вы должны создать его максимум из MSVC9 (Visual Studio 2008) или использовать функцию многоцелевого назначения VS2010, чтобы позволить VC ++ 2010 использовать компиляторы и библиотеки VC ++ 2008. Пожалуйста, также обратитесь к этому Microsoft Connect обсуждение.

2

Другие решения

Хорошо, прошло некоторое время, но я бы хотел дать окончательный ответ на этот мой вопрос. К несчастью, то, что я просил, это невозможно. Ответ @ vahancho правильный, и решение, которое он указал, верное для большинства ситуаций. Тем не мение, DecodePointer «включен» в ядро ​​Windows XP SP 2, и невозможно скомпилировать приложение, используя его для более старой ОС Microsoft, даже при выборе компилятора VC ++ 2008.

Дополнительная ссылка дается эта почта на CodeProject.
К счастью для меня, мое приложение было достаточно простым, чтобы позволить мне переписать его, используя старый добрый VB6 🙂

0

По вопросам рекламы [email protected]