J'ai un projet C++ créé dans VS6 qui a été ouvert dans VS2010 et compile bien. Il contient une classe avec un peu de montage en ligne, y compris le code suivant:Visual Studio 2010 compiler l'assemblage en ligne en C++ comme si Visual Studio 6?
__asm{
mov eax,this
mov esi,[eax].m_pImage
...
bien beau, jusqu'à ce que je tente de créer un nouveau projet MFC C++ dans VS2010 et ajouter la classe avec le code de montage ci-dessus. Tout à coup, ce ne sera pas compilé comme nouvelle interprétation de __asm exige que le code soit comme suit (ou quelque chose de similaire, ce qui compile en tout cas): Maintenant
__asm{
mov eax,this
mov esi,[eax]this.m_pImage
...
, pour la vie de moi, je ne peux pas Quelle différence y a-t-il entre les deux projets, ce qui permet au projet VS6 converti de compiler le code d'assemblage en ligne (présumable actuellement invalide) dans VS2010, alors qu'un projet nouvellement créé ne le peut pas.
Y at-il quelque part un paramètre (caché) qui permet d'utiliser l'ancien compilateur VS6?
Pourquoi utiliser un assembleur en ligne? – Puppy