Как я программировал под Windows XP, хотел написать программу, которой будут пользоваться миллионы (+живые примеры)
2005 год. Мне 17 лет. Надоело играть в игры на компе. Стало интересно, как они создаются. Как вообще создаются программы. Самый бум заселения ПК в частные дома. Тогда даже ноутбуков не было. (Может у единиц. где-нибудь в Москве, Питере)
2.2K открытий
В провинции персональный компьютер — это системный блок и монитор. В большинстве случаев монитор — это 15-дюймовый ЭЛТ ящик, с 60 Гц частотой обновления, и разрешением 1024*768. Но у меня даже такого не было. У меня был 14-дюймовый, с разрешением 800*600. Да, я играл на нем в игры. В Doom 🙂
Но статья не об этом. После года пользования ПК, мне стало интересно, как создаются все эти Windows-окошки, windows-приколы (если кто помнит, когда комп сам перезагружается, кнопка Пуск летает по экрану и так далее). Книжечку я себе купил по Basic. Именно купил, а не скачал. Купил в местном книжном магазине, нашел на полках с компьютерной литературой. Качать книги с интернета я даже не знал где, интернет был 56 кбит/сек через телефонную сеть, и карточку за 150 рублей 3 часа (кто поймет, тот поймет, кто нет, тот еще маленьким был. Или слишком богатым).
Так вот. Купил книжку, где-то нашел qBasic для ms-dos, потихоньку стал учиться азам программирования. Через два-три месяца наверное, узнал, что у нашего провайдера есть форум в локальной сети. Там есть подфорум про программирование. Стал его читать. Узнал, что есть такая система, как Visual Basic, и вот тут пошло-поехало. Visual Basic 6.0. «Hello World» — первая программа, которая показывает надпись в Windows-окне. Не в консоли, а в Windows-окне! Радости не было предела!
Понимаю, кто-то эти окна и в 2000-м писал, и в 95-м, но у меня компьютер появился только в 2004, не ругайте сильно. Иметь компьютер раньше не было возможности.
Так вот, я стал изучать эту среду разработки. Даже книжку по Visual Basic 6.0 нашел в книжном магазине. Но она не очень помогла. Скучные были примеры, типа написать калькулятор или прогу, которая рисует графики по заданным формулам.
Помог мне интернет. Нашел какой-то сайт на народе.ру, состоящий из практических уроков, как написать игру, как написать летающий пуск, как выводить летающую надпись на экран, как сделать так, чтобы компьютер перезагружался через определенное время, и как все это поместить в автозагрузку, работа с реестром, работа с музыкой, и т.д. Вот это было очень интересно. И самое интересное, что все это можно было делать на бейсике. Тогда я читал много статей о том, кто такой Билл Гейтс, как он стал самым богатым в мире. Что есть такая программа winamp, и что она самая популярная в мире. И я тоже захотел сделать свою программу, свое ПО, которым будут пользоваться миллионы.
Процесс обучения не буду описывать. Статья будет довольно длинной.
В 2007 появилась моя первая полноценная программа, которую не стыдно было выпускать в сеть. xTime. Тогда же я создал сайт, специально для своих программ. Сайт уже давно умер. Но программа жива и работает до сих пор.
Я ее даже научил работать через командную строку. Она умеет выключать, выводить в спящий режим, перезагружать комп через определенное время в минутах.
Для пользователей iPhone
Мои программы до сих пор живы, и работают, их можно скачать где-то на просторах сети. Просто сайт уже умер. Сейчас ему было бы 13 лет.
Надеюсь, вам понравились мои воспоминания. У каждого здесь, уверен, есть свои.
Настройка программ для Windows XP
Visual Studio поддерживает несколько наборов инструментов платформы. Это означает, что можно использовать операционные системы и библиотеки среды выполнения, которые не поддерживаются набором инструментов по умолчанию. Например, путем переключения набора инструментов платформы вы можете использовать компилятор Visual Studio 2017 C++, чтобы создавать приложения для Windows XP и Windows Server 2003. Вы также можете применять наборы инструментов для старых платформ, чтобы обеспечивать совместимость прежнего кода на двоичном уровне, пользуясь при этом последними возможностями интегрированной среды разработки Visual Studio.
Набор инструментов, поставляемый в Visual Studio 2019 и более поздних версий, не поддерживает создание кода для Windows XP. Поддержка разработки для Windows XP доступна через набор инструментов Visual Studio 2017 v141_xp. Набор инструментов v141_xp можно установить как отдельный компонент в Visual Studio Installer.
Установка набора инструментов платформы Windows XP
Чтобы получить набор инструментов платформы Visual Studio 2017 и компоненты для Windows XP и Windows Server 2003, запустите Visual Studio Installer. При первоначальной установке Visual Studio или при изменении существующей установки убедитесь, что выбрана рабочая нагрузка Разработка классических приложений на C++ . В списке дополнительных компонентов для этой рабочей нагрузки выберите Поддержка Windows XP для C++ , а затем Установить или Изменить.
Чтобы получить набор инструментов платформы v141_xp и компоненты для Windows XP и Windows Server 2003, запустите Visual Studio Installer. При первоначальной установке Visual Studio или при изменении существующей установки убедитесь, что выбрана рабочая нагрузка Разработка классических приложений на C++ . На вкладке Отдельные компоненты в разделе Компиляторы, средства сборки и среды выполнения выберите C++ Windows XP Support for VS 2017 (v141) tools [Не рекомендуется], а затем выберите Установить или изменить.
Нацеливание на Windows XP
Набор инструментов для платформы Windows XP, включенный в Visual Studio, является версией пакета SDK для Windows 7, но использует текущий компилятор Visual Studio 2017 C++. Он также присваивает свойствам проекта соответствующие значения по умолчанию. Например, он задает спецификацию совместимого компоновщика для нисходящего нацеливания. В Windows XP и Windows Server 2003 могут работать только классические приложения Windows, созданные с помощью набора средств платформы Windows XP. Эти приложения также могут работать в более новых операционных системах Windows.
Нацеливание на Windows XP
- В обозревателе решений откройте контекстное меню своего проекта и выберите пункт Свойства.
- В диалоговом окне Страницы свойств в раскрывающемся списке Конфигурация выберите пункт Все конфигурации.
- Перейдите на страницу свойств Свойства конфигурации>Общие. Задайте в качестве значения свойства Набор инструментов платформы нужный набор инструментов Windows XP. Например, выберите Visual Studio 2017 — Windows XP (v141_xp) , чтобы создать код для Windows XP и Windows Server 2003 с помощью компилятора Microsoft C++ в Visual Studio 2017.
Поддержка среды выполнения C++
Помимо набора инструментов платформы Windows XP, несколько библиотек включают поддержку среды выполнения для Windows XP и Windows Server 2003:
- Универсальная библиотека времени выполнения C (UCRT)
- Стандартная библиотека C++
- Библиотека шаблонных классов (ATL)
- Библиотека среды выполнения параллелизма (ConcRT)
- Библиотека параллельных шаблонов
- Библиотека Microsoft Foundation Class (MFC)
- Библиотека C++ AMP (C++ Accelerated Massive Programming).
Поддерживаются следующие минимальные версии этих операционных систем: Windows XP с пакетом обновления 3 (SP3) для x86, Windows XP с пакетом обновления 2 (SP2) для x64 и Windows Server 2003 c пакетом обновления 2 (SP2) как для x86, так и для x64.
Эти библиотеки поддерживаются наборами инструментов платформ, устанавливаемыми вместе с Visual Studio, в зависимости от целевой платформы:
Библиотека | Набор инструментов платформы по умолчанию для классических приложений Windows | Набор инструментов платформы по умолчанию для приложений Store | Набор инструментов платформы Windows XP для Windows XP и Windows Server 2003 |
---|---|---|---|
CRT — библиотека | X | X | X |
Стандартная библиотека C++ | X | X | X |
ATL | X | X | X |
ConcRT/PPL | X | X | X |
MFC | X | X | |
C++ AMP | X | X |
Приложения, написанные на C++/CLI и предназначенные для платформы .NET Framework 4, выполняются в Windows XP и Windows Server 2003.
Различия между наборами инструментов
Из-за различий в поддержке платформ и библиотек процесс разработки приложений с помощью набора инструментов платформы Windows XP не так многофункционален, как в случае с приложениями, использующими набор инструментов платформы по умолчанию.
- Возможности языка C++ В приложениях, использующих набор инструментов платформы v141_xp, поддерживаются только функции языка C++, реализованные в Visual Studio 2017. В приложениях, использующих набор инструментов платформы v140_xp, поддерживаются только функции языка C++, реализованные в Visual Studio 2015. При сборке с помощью более старых наборов инструментов платформы среда Visual Studio использует соответствующий компилятор. Выберите более новый набор инструментов платформы Windows XP, чтобы воспользоваться реализованными в этой версии компилятора последними возможностями C++. Дополнительные сведения о поддержке функций языка версиями компилятора см. в статье Соответствие стандартам языка Microsoft C/C++.
- Удаленная отладка Удаленная отладка для Windows XP или Windows Server 2003 не поддерживается Инструментами удаленной отладки для Visual Studio. Для локальной или удаленной отладки приложения, выполняющегося в Windows XP или Windows Server 2003, можно использовать отладчик из более ранней версии Visual Studio. Ситуация здесь схожа с отладкой приложений в Windows Vista: Vista является целевой средой выполнения для набора инструментов платформы, но не целевым объектом удаленной отладки.
- Статический анализ Наборы инструментов платформы Windows XP не поддерживают статический анализ. Аннотации SAL для Windows 7 SDK и библиотек среды выполнения несовместимы. Вы по-прежнему можете выполнять статический анализ в приложении, которое поддерживает Windows XP или Windows Server 2003. Вы можете временно переключиться на набор инструментов платформы по умолчанию для анализа решения, а затем вернуться к набору инструментов платформы Windows XP для сборки приложения.
- Отладка графики DirectX Отладчик графики не поддерживает API Direct3D 9. С его помощью нельзя выполнять отладку приложений, которые используют Direct3D в Windows XP или Windows Server 2003. Однако если в приложении реализован альтернативный отрисовщик на основе API Direct3D 10 или Direct3D 11, с помощью отладчика графики можно диагностировать проблемы.
- Сборка HLSL По умолчанию набор инструментов Windows XP не компилирует файлы с исходным кодом HLSL. Для компиляции файлов HLSL загрузите и установите пакет SDK DirectX за июнь 2010 года, а затем включите его в каталоги VC проекта. Дополнительные сведения см. в разделе «Пакет SDK DirectX не регистрирует пути включения и пути к библиотекам в Visual Studio 2010» на странице загрузки пакета SDK DirectX за июнь 2010 года (архивная ссылка).
Развертывание Windows XP
Из-за отсутствия поддержки сертификата для подписи кода SHA-256 поддержка библиотеки среды выполнения для Windows XP больше не доступна в последнем Распространяемом компоненте Visual C++ для Visual Studio 2015, 2017, 2019 и 2022. Последний Распространяемый компонент для поддержки Windows XP поставлялся в Visual Studio 2019 версии 16.7. Используйте Распространяемый компонент с версией файла, начиная с 14.27. Если приложения Windows XP развернуты или обновлены до более поздней версии распространяемого компонента, приложения не будут работать.
Если вы используете версию Visual Studio после 2019 16.7, распространяемые файлы не будут работать в Windows XP. Чтобы получить копию распространяемых файлов, поддерживающих Windows XP, потребуется учетная запись Visual Studio. Используйте учетную запись, с которой вы входите в Visual Studio. Вы также можете создать учетную запись бесплатно на сайте my.visualstudio.com. Распространяемый файл доступен в разделе «Загрузки» как Распространяемый компонент Visual C++ для Visual Studio2019, версия 16.7. Чтобы скачать файлы, выберите необходимую платформу и язык, а затем нажмите кнопку «Скачать».
Чтобы установить поддержку библиотеки среды выполнения для приложения Windows XP, можно использовать центральное или локальное развертывание. Дополнительные сведения см. в статье Пошаговое руководство. Развертывание приложения Visual C++ с помощью распространяемого пакета Visual C++.
В какой среде программировать для Windows XP?
Требуется совместимость с Windows XP SP3 и выше, формат билда — нативное приложение, нужна иде.
Дальше лирическое отступление, не надо к этому крепко привязываться.
Пробовал ставить SDK Qt 5 штук пять версий — не инсталится (не помню ошибку, под win xp). VS C++ Express 2008 и 2010 в наши дни не скачать официально, нашёл на торентах по одному портаблу, но тоже пока не удалось поставить из-за ошибок (под win7 пока) .
- Вопрос задан более двух лет назад
- 604 просмотра
1 комментарий
Средний 1 комментарий
Решения вопроса 1
Была поддержка Windows XP в Visual Studio 2017. Нужно просто выбрать определенный toolset.
Ответ написан более двух лет назад
Нравится 4 1 комментарий
Подтверждаю. Надо просто выбрать toolset с суффиксом xp в свойтсвах проекта. Он идет вместе со стандартным. Версия toolset для xp такая же, как и дефолтного. Другое дело, что сам MSVS может не встать на XP.
Но тут можно поставить MS Build Tools, а в качестве IDE использовать QtCreator.
В параметрах компилятору, надо будет вручную указывать нужный toolset. Как это делать написано тут:
https://stackoverflow.com/questions/46325589/compi.
https://stackoverflow.com/questions/52152135/how-t.
https://social.msdn.microsoft.com/Forums/azure/en-.
Если у вас будет (наверняка) другая версия toolsetа, то просто проведите эксперимент — в MSVC создать простейший проект собрать его со стандартным toolsetом и с xp вариантом и сравнить параметры командной строки, которые выдаются для запуска cl и link.
Ответы на вопрос 6
Владимир Коротенко @firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Лошадь сдохла. Пристрелите лошадь.
для Windows XP сейчас делать что то это большой прайс.
Ответ написан более двух лет назад
Комментировать
Нравится 5 Комментировать
Hemul GM @HemulGM Куратор тега Windows
Delphi Developer, сис. админ
Если нужна среда на WinXP, то Delphi 7, ну и соответственно язык Delphi
Если среда может стоять на свежей винде, то RAD Studio 10.4 CE, ну и язык Delphi.
Создаваемый софт (VCL) прекрасно работает на WinXP
RAD Studio к слову имеет и C++ Builder, который тоже позволяет создавать софт, который работает и на WinXP
При подготовке материала использовались источники:
https://vc.ru/life/184812-kak-ya-programmiroval-pod-windows-xp-hotel-napisat-programmu-kotoroy-budut-polzovatsya-milliony-zhivye-primery
https://learn.microsoft.com/ru-ru/cpp/build/configuring-programs-for-windows-xp?view=msvc-170
https://qna.habr.com/q/1042290