Simptomi
Razmislite o sljedećem scenariju u sustavu Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1). Aplikaciju stvarate pomoću paketa za razvoj softvera (SDK), a zatim dodajte VBA prilagodbu s kodom. Kada pokrenete aplikaciju, primit ćete sljedeću poruku o pogrešci:
"Microsoft Windows
<ApplicationName>. .. prestalo funkcionirati"
Gdje <ApplicationName> naziv aplikacije koju ste stvorili za Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1).
Uzrok
Aplikacija koja koristi komponente ugrađene u atl verziju 7.1 ili stariju verziju ugrađena je pomoću prekidača /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) ili je os na neki drugi način tretira kao "Ne eXecute Compatible". Instaliranjem Visual Studio 2008 programi mogu po zadanom biti ugrađeni u VS 2008 ili VS 2005 da bi se po zadanom omogućila kompatibilnost s NX-om. Osim toga, ako je pravilnik DEP-a za sustav postavljen na AlwaysOn, aplikacije koje sadrže stariji thunking kod (koji se koristi za prevođenje memorijskih adresa (pokazivača) između 16-bitnog i 32-bitnog koda) vidjet će taj problem.
Rješenje
Izradite Project pomoću postavke u događajima nakon međuverzije da biste uklonili prekidač /NXCOMPAT na sljedeći način Visual Studio 2008:
1) Otvorite projekt SDK 7.0 pomoću Visual Studio 2008.
2) Kliknite desnom tipkom miša i odaberite svojstva 3) Odaberite karticu Sastavljanje 4) Kliknite gumb "Međuverzija događaja" na dnu 5) Dodajte sljedeće u
događaj
"Post-build"
("$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Spremi i sastavi projekt
Dodatne informacije
Dodatne informacije potražite http://support.microsoft.com/kb/948468 potražite u odjeljku Http://support.microsoft.com/kb/948468 informacije.