Domanda

Sono nuovo di c ++. Ho realizzato un programma c ++ usando VS 2008 Professional. Ho iniziato con il modello Win32 che ha creato una finestra per me. L'ho compilato su Vista 32. Ho portato l'exe compilato sul mio vecchio computer XP SP2 e mi dice che la configurazione dell'applicazione non è corretta. C'è qualcosa che sto facendo di sbagliato? Come posso renderlo indipendente dalla piattaforma?

Grazie

È stato utile?

Soluzione

Prova a installare Microsoft Visual C ++ Pacchetto ridistribuibile SP1 2008 e assicurati di utilizzare la build di rilascio dell'applicazione.

Altri suggerimenti

Assicurati che WINVER sia impostato su una versione che include WinXP: sembra che la versione di destinazione predefinita di Windows per VS 2008 sia Vista (0x0600).

Imposta la seguente definizione del preprocessore:

#define WINVER 0x0501

preferibilmente usando le proprietà del progetto "C / C ++ / Definizioni del preprocessore / preprocessore" o l'opzione -D nella riga di comando cl.exe. È anche possibile che esista un file targetver.h con questa impostazione (a seconda di come il progetto è stato creato inizialmente).

Vedi http://msdn.microsoft.com /en-us/library/aa383745(VS.85).aspx per maggiori dettagli.

Nel sistema di destinazione mancano i file di runtime necessari per quell'eseguibile.

Puoi trovarlo su: Pacchetto ridistribuibile di Microsoft Visual C ++ 2008 (x86) o Pacchetto ridistribuibile di Microsoft Visual C ++ 2008 SP1 (x86)

È possibile utilizzare Dependency Walker per trovare quali componenti mancano sul sistema WinXP di destinazione. Quindi è necessario installare ridistribuibili appropriati.

Nelle proprietà del progetto, imposta " C / C ++ - > Generazione di codice - > Libreria di runtime " in " Multi-thread (Debug) " . Dopo la ricostruzione, l'applicazione non dipenderà più da msvcr90.dll . Il file binario dell'applicazione, tuttavia, sarà leggermente più grande.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top