2016-02-27 14 views
5

Utilizzo Microsoft Visual Studio 2015 su Windows 8.1. Voglio compilare un programma per Windows XP. Ho cercato su Google e altre domande simili, ma nessuna ha aiutato. Nelle impostazioni della soluzione, il set di strumenti della piattaforma di destinazione è impostato su Windows XP, ma non vi è alcuna opzione per Windows XP nella versione della piattaforma di destinazione. ho letto https://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v=vs.85).aspx (Usando le intestazioni di Windows) e ha aggiunto queste righe per il mio programma:Come scegliere come target Windows XP in Microsoft Visual Studio C++

#define WINVER _WIN32_WINNT_WINXP 
#define _WIN32_WINNT _WIN32_WINNT_WINXP 
#define NTDDI_VERSION NTDDI_WINXP 

Ma ancora non funziona. Dice che non riesce a trovare "MSVCP140.dll". Dopo aver ottenuto questa DLL, inizia a lamentarsi di non riuscire a trovare "VC140.dll". Dopo che è "ucrtbased.dll", e infine "api-ms-win-core-string-11-1-0.dll", che non ho nemmeno nel mio computer Windows 8.1. Il programma può essere eseguito su Windows 8.1, ma non su Windows XP. Cosa posso fare per far funzionare il programma su Windows XP?

+0

fyi windows xp è fuori supporto. –

+0

Sii più specifico sull'errore. –

+0

Windows XP non è più supportato e pertanto le versioni degli IDE MS dopo la sua scomparsa non includono più il supporto per tale sistema operativo guasto. Se vuoi indirizzare i sistemi operativi antiquati, usa versioni antiquate dell'IDE. –

risposta

25

Per creare un file EXE compatibile con Windows XP con VS 2015 (o VS 2012/VS 2013) è necessario utilizzare il set di strumenti della piattaforma v140_xp anziché il set di strumenti della piattaforma v140 predefinito.

consultare la proprietà del progetto, la pagina Generale:

Property Page

Questo perché il default Piattaforma Toolset utilizza il 8.1 SDK di Windows (oppure si può optare per il Windows 10 SDK), e questo solo supporti creare applicazioni per Windows Vista o versioni successive. Quando si seleziona la piattaforma v140_xp Toolset, si utilizza una versione di Windows 7.1 SDK, che è stata l'ultima versione a supportare il targeting di Windows XP o Windows Server 2003.

noti che Visual Studio può avere come bersaglio di Windows XP Service Pack 3 o Windows Server 2003 Service Pack 2. C/C++ Runtime non è compatibile con le versioni precedenti di Windows.

Se si utilizza DirectX nella propria app, questo ha delle implicazioni profonde poiché molto è cambiato tra l'SDK di Windows 7.1 e l'SDK di Windows 8. Vedi this post per i dettagli.

Con VS 2015, sarà anche necessario selezionare il supporto di Windows XP nel Installazione personalizzata opzioni o tramite Programmi & Caratteristiche/Microsoft Visual Studio 2015/Change .../Modifica:

Modify

+1

L'ho impostato su v140_xp, ma ancora non funziona. Se non è impostato su v140_xp, viene visualizzato il messaggio di errore "xxxx.exe non è un'applicazione Win32 valida". Se lo imposto su v140_xp, si lamenta delle DLL mancanti che ho menzionato nella domanda. – Tyler

+2

Stai provando ad eseguirlo su un sistema Windows XP o sulla macchina su cui è installato VS 2015? –

+1

Avete installato i ridistribuibili VC++ sul PC di destinazione? Es: "C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ VC \ redist \ 1033 \ vcredist_x86.exe" – Pierre

Problemi correlati