Проблемы
Рассмотрим следующий сценарий в microsoft Dynamics SL 7.0 Feature Pack 1 (FP1). Вы создаете приложение с помощью комплекта средств разработки программного обеспечения (SDK), а затем добавляете настройку VBA с кодом. При запуске приложения вы получаете следующее сообщение об ошибке:
"Microsoft Windows
<ApplicationName>. .. перестала работать"
Здесь <ApplicationName> название приложения, созданного для Microsoft Dynamics SL 7.0 с пакетом обновления 1 (FP1).
Причина
Приложение, использующее компоненты, встроенные в ATL версии 7.1 или более ранней версии, встроено с переключателем /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) или иным образом интерменуется операционной системы как не совместимое с eXecute. Установка Visual Studio 2008 может привести к тому, что программы, впоследствии встроенные в VS 2008 или VS 2005, по умолчанию будут работать с совместимостью NX. Кроме того, если для политики DEP для системы установлено название AlwaysOn, эта проблема будет отобразиться в приложениях, включающих более старый код tkingking (который используется для перевода адресов памяти (указателей) между 16-битным и 32-битным кодами.
Решение
Создайте Project с помощью параметра в событиях post-build, чтобы удалить переключатель /NXCOMPAT в Visual Studio 2008:
1) Откройте проект SDK 7.0 в Visual Studio 2008.
2) Щелкните правой кнопкой мыши и выберите свойства 3) Выберите вкладку Компилятор 4) Нажмите кнопку "События сборки" в нижней части 5) Добавьте в события
"Post-build"
($(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Сохраните и создайте проект
Дополнительная информация
Дополнительные сведения http://support.microsoft.com/kb/948468 в этой области.