11 votes

Conversion d'un projet VC++6/Win32 en projet VS2010 C++/Win32 : Problèmes connus

Connaissez-vous des ressources qui mettent en évidence les problèmes connus ou possibles lors de la conversion d'un système de gestion de l'eau ? VC++6/Win32 projet pour VS2010 C++/Win32 type de projet ? Je suis intéressé par toutes sortes de questions :

  • Compatibilité des options du compilateur
  • Problèmes liés à la compilation
  • Problèmes de temps de liaison
  • Problèmes d'exécution
  • Problèmes de MFC

Sinon, si vous avez déjà effectué ce type de migration, quels problèmes avez-vous rencontrés ?

Merci.

2voto

ALi Points 1

Si vous disposez d'une édition commerciale de Visual C++ :

Trouvez devenv dans votre répertoire d'installation de Visual C++ (devrait être %VS90COMNTOOLS%\..\IDE\devenv.exe

    > devenv /upgrade project.sln

    > msbuild.exe project.sln  /t:Build  /p:Configuration=Release /p:Platform=Win32

Vérifiez la compilation

mais si vous avez une édition gratuite de Visual C++ :

Trouvez vcbuild.exe dans le répertoire d'installation de Visual C++ (qui devrait être %PROGRAMFILES%\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild.exe )

    > vcbuild.exe /upgrade   project.sln
      /msbuild:Configuration=Release
      /msbuild:Platform=Win32

Pour les constructions futures qui ne nécessitent pas de conversion, tapez :

> msbuild.exe project.sln /t:Build /p:Configuration=Release /p:Platform=Win32

2voto

Steve Valliere Points 932

Lors de la migration de VS2005 à VS2010, nous avons rencontré un problème avec une bibliothèque tierce qui faisait planter l'un de nos programmes à chaque fois qu'elle était chargée. Le problème s'est avéré être causé par Microsoft qui a inversé le paramètre par défaut du commutateur /NXCOMPAT dans l'éditeur de liens. Ce commutateur contrôle si la prévention de l'exécution des données (DEP) est activée ou non. Avant VS2010, le paramètre par défaut de ce commutateur était NO et la DLL que nous utilisions dépendait apparemment de ce paramètre pour fonctionner correctement.

Je ne sais pas jusqu'où remonte l'interrupteur du linker NXCOMPAT. Il n'était pas répertorié dans les paramètres disponibles dans le manuel VS2005. Dialogues mais il a été répertorié lorsque link /help a été exécuté à partir de la ligne de commande. Je n'ai jamais été en mesure de trouver une liste de modifications comme celle-ci de la part de Microsoft, donc ce genre de bogue est TRÈS délicat à dépister.

1voto

Chaitanya Points 31

Si vous migrez de VC++ 6 à VS2015 avec CLR, les fonctions min et max existantes ne sont plus trouvées, ajoutez

#define NOMINMAX
#include <algorithm>
namespace Gdiplus
{
  using std::min;
  using std::max;
};

Deuxièmement, le flotteur NAN a été changé en nan

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X