Ответ 1
Приложения VS 2012 не могут запускаться под Windows XP.
Смотрите блог VС++ о том, почему и как заставить его работать.
Кажется, это поддерживается/возможно с февраля 2013 года. См. noelicus ниже о том, как это сделать.
У меня есть небольшой проект C/С++ в Visual Studio 2012 RC
Эти приложения анализируют argv, а затем вызывают другой .exe файл с ShellExecute
Мое приложение отлично работает на Windows7, но в Windows XP x86 trhows Не является допустимой ошибкой приложения Win32.
Я скомпилировал его с помощью Mutli-thread (/MT) и платформы Win32
Это мой #includes
#include <string>
#include <iostream>
#include <Windows.h>
#include <fstream>
#include <cstdio>
#include <vector>
#include <windowsx.h>
#include <shlobj.h>
#include <stdio.h>
#include <tchar.h>
#include <direct.h>
Спасибо
Приложения VS 2012 не могут запускаться под Windows XP.
Смотрите блог VС++ о том, почему и как заставить его работать.
Кажется, это поддерживается/возможно с февраля 2013 года. См. noelicus ниже о том, как это сделать.
Это февраль 2013 года, и теперь я могу настроить XP на VS2012, установив:
Свойства проекта → Общие → Набор инструментов для платформы:
Visual Studio 2012 - Windows XP (v110_xp)
Вам необходимо будет перераспределить библиотеки msvcp110.dll с вашим приложением, которые можно найти здесь: "<Program Files>\Microsoft Visual Studio 11.0\VC\redist\x86\Microsoft.VC110.CRT\"
Обновление Aug 2015 с помощью Visual Studio 2015
Кажется, теперь есть выбор. Я смог скомпилировать приложение в VS2015 с помощью параметра Visual Studio 2015 - Windows XP (v140_xp). Чтобы запустить его на Win XP, мне пришлось развернуть (копировать вместе с приложением) msvcr100.dll для сборки Release и msvcr110.dll и msvcr100d.dll для сборки Debug (обратите внимание, что есть разница в числах 100 и 110, также debug lib msvcr100d.dll не могут быть распространены)
Существует как минимум два решения:
В то время как ответ seleted был прав назад, а затем noelicus дал правильное обновление в отношении набора инструментов платформы v110_xp, есть еще одна проблема, которая могла бы продуцировать это поведение.
Заметка о проблеме уже была опубликована mahesh в его комментарии, и я хотел бы подчеркнуть это, поскольку я провел пару дней, пытаясь найти его, а затем нашел его сам.
Итак, если у вас есть пробел в "Свойства конфигурации → Линкера → Система → Подсистема", вы по-прежнему получите ошибку "недействительной версии Win32" на XP и Win2003, а на Win7 она работает без этой досадной ошибки. Ошибка исчезла, как только я поставил подсистему: console.
Для меня это помогло: 1. Свойства конфигурации/Общие/Platform Toolset = Windows XP (V110_xp) 2. Определения препроцессора C/С++, добавьте "WIN32" 3. Linker/System/Минимальная требуемая версия = 5.01
У меня была такая же проблема на Windows XP при запуске приложения, построенного со статической версией Qt 5.7.0 (MSVC 2013).
Добавление следующей строки в файл проекта .pro разрешило его:
QMAKE_LFLAGS_WINDOWS = /SUBSYSTEM:WINDOWS,5.01
Я считаю, что эта ошибка также может быть запущена, если ваш проект нацелен на версию фреймворка, которая не установлена на сервере, на котором вы развертываете.
У меня возникла эта проблема при запуске 32-битного консольного приложения VS2013 в PowerShell, запуск его в cmd не вызвал этой проблемы.