症状
请考虑以下方案:Microsoft Dynamics SL 7.0 功能包 1 (FP1) 。 使用软件开发工具包和 SDK (创建) ,然后添加包含代码的 VBA 自定义。 启动应用程序时,收到以下错误消息:
"Microsoft Windows
<ApplicationName>。 ..已停止工作"
其中<ApplicationName> 是为 Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1) 。
原因
使用使用 ATL 版本 7.1 或更早版本构建的组件的应用程序是使用/NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) 开关构建的,或者由 OS 视为"无 eXecute 兼容"。 安装 Visual Studio 2008 可能导致随后使用 VS 2008 或 VS 2005 构建的程序默认启用 NX 兼容性。 此外,如果系统的 DEP 策略设置为 AlwaysOn,则合并旧式转换代码 (用于转换内存地址 (指针) 16 位到 32 位代码的应用程序) 将看到此问题。
解决方法
使用Project事件中的设置生成应用程序,以删除 /NXCOMPAT 开关,如下所示,Visual Studio 2008:
1) 2008 打开 SDK 7.0 Visual Studio项目。
2) 右键单击并选择属性 3) 选择"编译"选项卡 4) 单击底部 5 的"生成事件"按钮) 将以下内容添加到"生成后"事件,称为
"$ (DevEnvDir
) ..\tools\vsvars32.bat"editbin.exe /NXCOMPAT:NO "$ (TargetPath) "
6) 保存并生成项目
更多信息
有关详细信息 ,http://support.microsoft.com/kb/948468 参考。