Symptômes
Prenons le scénario suivant dans Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1). Vous créez une application à l’aide du Kit de développement logiciel (SDK), puis ajoutez une personnalisation VBA avec du code. Lorsque vous démarrez l’application, vous recevez le message d’erreur suivant :
« Microsoft Windows
<ApplicationName>. .. a cessé de fonctionner »
Où <ApplicationName> est le nom de l’application que vous avez créée pour Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1).
Cause
Une application qui utilise des composants intégrés à ATL version 7.1 ou antérieure est intégrée avec le commutateur /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx), ou est autrement traitée par le système d’exploitation comme étant « Aucune eXecute Compatible ». L’installation Visual Studio 2008 peut permettre aux programmes ultérieurement conçus avec VS 2008 ou VS 2005 d’activer la compatibilité NX par défaut. Par ailleurs, si la stratégie DEP du système est définie sur AlwaysOn, les applications qui incorporent l’ancien code jeu (utilisé pour traduire les adresses mémoire (pointeurs) entre les codes 16 bits et 32 bits) rencontreront ce problème.
Résolution
Créez la Project avec le paramètre dans les événements après build pour supprimer le commutateur /NXCOMPAT comme suit dans Visual Studio 2008 :
1) Ouvrez le projet SDK 7.0 avec Visual Studio 2008.
2) Cliquez avec le bouton droit et sélectionnez les propriétés 3) Sélectionnez l’onglet Compilation 4) Cliquez sur le bouton « Créer des événements » dans le coin inférieur 5) Ajoutez ce qui suit à l’événement « Post-build » appelé
«
$(DevEnvDir)..\tools\vsvars32.bat »
editbin.exe /NXCOMPAT:NO « $(TargetPath) »
6) Enregistrer et créer le projet
Informations supplémentaires
Pour plus d’http://support.microsoft.com/kb/948468 consultez le site.