Symptomer
Overvej følgende scenarie i Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1). Du opretter et program ved hjælp af SDK (Software Development Kit) og tilføjer derefter en VBA-tilpasning med kode. Når du starter programmet, modtager du følgende fejlmeddelelse:
"Microsoft Windows
<ApplicationName>. .. er holdt op med at fungere"
Hvor <ApplicationName> navnet på det program, du har oprettet til Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1).
Årsag
Et program, der bruger komponenter, der er opbygget med ATL version 7.1 eller tidligere, er bygget med parameteren /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx), eller det behandles på anden vis af OS som "Ingen eXecute-kompatibel". Hvis du installerer Visual Studio 2008, kan det medføre, at programmer, der er opbygget med VS 2008 eller VS 2005, efterfølgende aktiverer NX-kompatibilitet som standard. Hvis politikken for dep for systemet er indstillet til AlwaysOn, vil programmer, der inkorporerer den ældre thunking-kode (bruges til at oversætte hukommelsesadresser (markører) mellem 16-bit og 32-bit kode), desuden se dette problem.
Løsning
Opbyg Project med indstillingen i Hændelser efter build for at fjerne parameteren /NXCOMPAT som følger i Visual Studio 2008:
1) Åbn projektet SDK 7.0 med Visual Studio 2008.
2) Højreklik, og vælg egenskaber 3) Vælg fanen Kompilering 4) Klik på knappen "Buildhændelser" nederst 5) Føj følgende til
"Post-build"-hændelserne kaldet
"$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Gem og opbyg projektet
Flere oplysninger
Se http://support.microsoft.com/kb/948468 for at få flere oplysninger.