2009-09-17 9 views
0

Je suis nouveau sur C++. J'ai fait un programme C++ en utilisant VS 2008 Professional. J'ai commencé avec le modèle Win32 qui a créé une fenêtre pour moi. Je l'ai compilé sur Vista 32. J'ai apporté l'exe compilé à mon ancien ordinateur XP sp2, et il me dit que la configuration de l'application est incorrecte. Y at-il quelque chose que je fais mal? Comment puis-je rendre la plate-forme indépendante?L'application a été configurée de manière incorrecte Erreur C++

Merci

Répondre

2

Essayez d'installer Microsoft Visual C++ 2008 SP1 Redistributable Package et assurez-vous d'utiliser la version release de votre application.

+0

Ensuite, comment pourrais-je faire une application sans dépendances, c'est un peu décevant car je suis passé de .Net avec l'espoir de ne pas avoir à se soucier de ce genre de choses; puis-je utiliser VC 6 ou quelque chose? – jmasterx

+3

Vous pouvez éviter la dépendance en liant statiquement aux bibliothèques de support d'exécution. –

1

Assurez-vous que WINVER est réglé sur une version qui inclut Windows XP - il ressemble à la version cible par défaut de Windows pour VS 2008 est Vista (0x0600).

Définissez le préprocesseur suivantes définissent:

#define WINVER 0x0501 

de préférence en utilisant les propriétés du projet "C/C++/préprocesseur/préprocesseur Définitions" ou l'option -D sur la ligne de commande cl.exe. Il est également possible qu'un fichier targetver.h possède ce paramètre (en fonction de la création initiale de votre projet).

Voir http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx pour plus de détails.

+0

C'est une bonne idée à faire, mais probablement pas le problème basé sur l'erreur qui se produit. – crashmstr

0

Vous pouvez utiliser Dependency Walker pour rechercher les composants qui manquent sur le système WinXP cible. Ensuite, vous devez installer les redistribuables appropriés.

0

Dans les propriétés du projet, définissez "C/C++ -> Code Generation -> Runtime Library" à "Multi-threaded (Debug)". Après la reconstruction, l'application ne dépendra plus de msvcr90.dll. Le binaire d'application sera cependant un peu plus grand.

+0

Bien sûr, pour les versions de versions, vous devez utiliser "Multi-Threaded" (pas de débogage). Aussi, c'est une mauvaise idée si votre application elle-même se compose de plusieurs DLL. – MSalters

Questions connexes