Oireet
Ota huomioon seuraava skenaario Microsoft Dynamics SL 7.0 Feature Pack 1:ssä (FP1). Voit luoda sovelluksen SDK-paketin (Software Development Kit) avulla ja lisätä VBA-mukautuksen koodilla. Kun käynnistät sovelluksen, näyttöön tulee seuraava virhesanoma:
"Microsoft Windows
<ApplicationName->. .. on lakannut toimimasta"
Jossa <ApplicationName> on sen sovelluksen nimi, jonka loit Microsoft Dynamics SL 7.0 Feature Pack 1:lle (FP1).
Syy
SOVELLUS, joka käyttää ATL-versiossa 7.1 tai aiemmassa versiossa luotuja osia, on asennettu /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) -kytkimen kanssa tai käyttöjärjestelmä on muuten kohdellaan "Ei eXecute-yhteensopivaa". Kun asennat Visual Studio 2008:aan, VS 2008: lla tai VS 2005:llä luotuja ohjelmia voi myöhemmin luoda NX-yhteensopivuuden oletusarvoisesti. Jos järjestelmän DEP-käytännön arvoksi on määritetty AlwaysOn, tämä ongelma ilmenee myös sovelluksissa, jotka sisältävät vanhemman toking-koodin (käytetään 16-bittisen ja 32-bittisen koodin kääntämiseksi muistiosoitteiden (osoittimen) välillä.
Ratkaisu
Voit Project /NXCOMPAT-kytkimen koontiversion jälkeisissä tapahtumissa seuraavan asetuksen avulla Visual Studio 2008:
1) Avaa SDK 7.0 -projekti Visual Studio 2008:ssa.
2) Napsauta hiiren kakkospainikkeella ja valitse ominaisuudet 3) Valitse Käännös-välilehti 4) Napsauta "Muodosta tapahtumia" -painiketta alareunassa 5) Lisää seuraava
"Build"-tapahtumakutsuun
"$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Tallenna ja muodosta projekti
Lisätietoja
Lisätietoja on http://support.microsoft.com/kb/948468 kohdassa http://support.microsoft.com/kb/948468.