Как скомпилировать для Win XP с Visual Studio 2012?

Итак, я использую Visual Studio 2012 в Windows 7 x64 для программирования и компиляции. Мое приложение работает там нормально, но когда я пытаюсь запустить его с виртуальной машины с Windows XP SP3, я сразу получаю сообщение «xxxx.exe не является действительным приложением win32».

Приложение компилируется со статической ссылкой, то есть с / MT. Я установил _WIN32_WINNT в 0x0501 в targetver.exe; диспетчер конфигурации установлен на Win32, а целевой компьютер в расширенных параметрах компоновщика установлен на MACHINEX86.

Мой targetver.h выглядит так:

#include <winsdkver.h>

#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#define NTDDI_VERSION 0x0501

#include <SDKDDKVer.h>

Я также попытался скомпилировать с / MD и установить .NET Framework, но это тоже не помогло.

Я не в курсе, и я действительно мог бы использовать некоторую помощь, так как мне нужно, чтобы она работала для Windows XP. Заранее спасибо.

23

Решение

Перепостим из комментария и обратите внимание, что этот ответ применим только к VC ++ 2012:

VC ++ 2012 RTM делает не поддержка WinXP — эта поддержка появится в этом году в обновлении VS2012 1.

В то же время, вы можете установить CTP таргетинга WinXP с VC ++ 2012, но вы должны будете связать ЭЛТ статически, чтобы развернуть. Увидеть эта статья блога для дополнительной информации.


РЕДАКТИРОВАТЬ: Visual Studio 2012 Update 1 уже выпущен и добавляет официальную поддержку для запуска приложений, созданных с помощью VC ++ 2012 для Windows XP, а также возможность динамически связывать CRT.

24

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

Необходимо сделать две вещи:

  • Свойства конфигурации> Общая страница, измените Набор инструментов платформы на: Visual Studio 2012 — Windows XP (v110_xp);

  • Линкер> Система. Измените Подсистему на: Консоль / Windows.

Подробности объяснения здесь: http://software.intel.com/en-us/articles/linking-applications-using-visual-studio-2012-to-run-on-windows-xp

7

Возможно, вы опоздали с решением, или это может быть не ожидаемое решение, но когда вы генерируете .exe, версия для 32-разрядной версии будет находиться в папке Project bin \ x86 \ Release

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