Příznaky
Zvažte následující scénář v microsoft Dynamics SL 7.0 Feature Pack 1 (FP1). Aplikaci vytvoříte pomocí sady Sdk (Software Development Kit) a pak přidáte přizpůsobení jazyka VBA s kódem. Při spuštění aplikace se zobrazí následující chybová zpráva:
"Microsoft Windows
<ApplicationName>. .. přestala fungovat"
Kde <ApplicationName> název aplikace, kterou jste vytvořili pro Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1).
Příčina
Aplikace, která používá součásti vytvořené ve formátu ATL verze 7.1 nebo starší, je integrovaná s přepínačem /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) nebo je jinak v operačním systému považována za "No eXecute Compatible". Instalace Visual Studio 2008 může způsobit, že programy vytvořené s VS 2008 nebo VS 2005 ve výchozím nastavení povolí kompatibilitu NX. Pokud je zásada zabránění spuštění dat systému nastavená na AlwaysOn, aplikace, které obsahují starší kód převodu dat (který se používá k překladu adres paměti (ukazatele) mezi 16bitovým a 32bitovým kódem), uvidí tento problém.
Řešení
Build the Project with setting in the Post-build events to remove the /NXCOMPAT switch as follows in Visual Studio 2008:
1) Otevřete projekt sady SDK 7.0 s Visual Studio 2008.
2) Klikněte pravým tlačítkem myši a vyberte vlastnosti 3) Vyberte kartu Kompilovat 4) Klikněte na tlačítko Build Events (Události buildu) v dolní části 5) Přidejte do události po buildu následující volání
$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Uložte a vytvořte projekt.
Další informace
Další informace http://support.microsoft.com/kb/948468 v tématu