4

J'utilise Microsoft Visual Studio 2008 (VC9) pour compiler un projet qui a un fichier .dsw. Je l'ai déjà 2010 et préféreraient l'utiliser, mais il semble que ce DSW a été construit pour 2008.Will VS2008 compilation des binaires compatibles avec Windows 7

Je voudrais compiler et produire un binaire qui est également compatible avec Windows 7. Mes questions:

  • Si je compile avec 2008, le binaire résultant sera-t-il compatible avec Windows 7? Je ne suis pas sûr de savoir à quelle version de VS le support de Windows 7 a démarré.
  • ou cela n'a rien à voir avec la version VS, et est-il lié au Windows SDK? Si c'est le cas, puis-je utiliser VS2008 avec un SDK Windows plus récent?

Quelqu'un peut-il s'il vous plaît préciser.

Répondre

2

VS2010 inclut la version 7.0 du SDK Windows et VS2008 non. Vous avez besoin de Windows SDK v7.0 si vous voulez que votre application profite des fonctionnalités de Windows 7 comme les listes de sauts. Comme vous avez déjà VS2010 installé, vous pouvez simplement modifier vos chemins de fichier include/lib dans VS2008 pour pointer vers Windows SDK v7.0 au lieu de celui par défaut fourni avec VS2008. C'est en supposant que vous avez besoin de cette version du SDK.

Vous n'avez pas besoin du dernier Windows SDK si vous ne prévoyez pas d'utiliser les dernières fonctionnalités de Windows 7 comme des rubans et sauter des listes. Si vous construisez votre application pour le système d'exploitation du plus petit dénominateur commun (c'est-à-dire Windows XP), alors vous devriez utiliser VS 2008 avec les paramètres par défaut. L'autre problème est que si votre code a été écrit à l'origine avant la sortie de Windows Vista, il est probable qu'il ne fonctionnera pas correctement sur Windows 7 à moins qu'il ne soit exécuté en mode Administrateur, ce que vous voulez éviter. La seule façon de résoudre ce problème est de réécrire une grande partie de votre code pour éviter d'écrire dans certains répertoires protégés et éviter d'utiliser certaines API nécessitant des privilèges d'administrateur.

5

Microsoft a une excellente «rétrospective» de compatibilité, donc tout ce que vous compilez avec une version de Visual Studio/Visual C++ sera compatible avec Windows 7. La même chose ne s'applique pas forcément en sens inverse, c'est-à-dire si vous utilisez un API introduite dans Windows 7, votre application va afficher une erreur lorsque vous essayez de l'exécuter sur des versions antérieures de Windows.

Il y a deux choses à considérer que:

  • Si le projet a été initialement écrit pour cibler Windows XP ou plus tôt, il risque de tomber sous le coup de contrôle de compte
  • Il y a des changements aux structures d'annuaire (par exemple comme %systemdrive%\Documents and Settings devenant %systemdrive%\Users) qui sont assez bien gérés par le lien que Windows 7 crée à la racine de `% systemdrive%, mais vous pourriez tomber dessus.
+1

En fin de compte, si vous êtes désireux de faire en sorte que votre code fonctionnera sur Win7, vous devrez le tester. Essayez de télécharger la boîte à outils Application Compatibility Toolkit et exécutez votre programme, ce qui mettra en évidence les zones à problème telles que l'écriture dans des zones de fichiers/registres privilégiés. –

+0

"vous pouvez rencontrer des problèmes avec UAC, la virtualisation du registre, des manifestes" - seulement si vous n'avez pas fait l'effort d'écrire votre logiciel pour ne pas avoir besoin de privilèges administratifs dès le départ. – Rob

Questions connexes