Jelenségek
Vegyük a következő esetet a Microsoft Dynamics SL 7.0 1. funkciócsomagban (FP1). Az alkalmazást a Szoftverfejlesztői készlet (SDK) használatával hozhatja létre, majd kód használatával hozzáadhat egy VBA-testreszabást. Amikor elindítja az alkalmazást, a következő hibaüzenet jelenik meg:
"Microsoft Windows
<ApplicationName>. .. leállt"
Ahol <ApplicationName> a Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1) alkalmazás neve.
A probléma oka
A 7.1-es vagy korábbi ATL-verzióval készült összetevőket használó alkalmazások az /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) kapcsolóval épülnek fel, vagy az operációs rendszer más módon "Nincs eXecute Compatible" (Nem kompatibilis eXecute Compatible)ként kezeli őket. A Visual Studio 2008 telepítése esetén a később a VS 2008 vagy VS 2005 programmal készült programok alapértelmezés szerint engedélyezik a NX-kompatibilitást. Emellett, ha a rendszer DeP házirend-beállítása AlwaysOn, a régebbi, 16 bites és 32 bites kód közötti (a memóriacímek (mutatók) fordításához használt) kódot magában foglaló alkalmazások is ezt a problémát fogják látni.
Megoldás
A build Project a Build utáni események beállításával a /NXCOMPAT kapcsoló eltávolításához a 2008.08-as Visual Studio szerint:
1) Nyissa meg az SDK 7.0-s projektet Visual Studio 2008-as verziójával.
2) Kattintson a jobb gombbal, és válassza ki a tulajdonságokat 3) Válassza a Fordítás lapot 4) Kattintson az 5. alján lévő "Build Events" gombra) Adja hozzá a következőt a
"$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Projekt mentése és összeállítása
További információ
További információt http://support.microsoft.com/kb/948468 a további információkért lásd: