Sintomas
Considere o seguinte cenário no Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1). Crie um aplicativo usando o Kit de Desenvolvimento de Software (SDK) e adicione uma personalização do VBA com código. Ao iniciar o aplicativo, você recebe a seguinte mensagem de erro:
"Microsoft Windows
<ApplicationName>. .. parou de funcionar"
Onde <ApplicationName> é o nome do aplicativo que você criou para o Microsoft Dynamics SL 7.0 Feature Pack 1 (FP1).
Causa
Um aplicativo que usa componentes construídos com ATL versão 7.1 ou anteriores é criado com a opção /NXCOMPAT (http://msdn2.microsoft.com/en-us/library/ms235442.aspx) ou é tratado de outra forma pelo sistema operacional como sendo "No eXecute Compatible". A instalação Visual Studio 2008 pode fazer com que programas posteriormente construídos com VS 2008 ou VS 2005 habilitam a compatibilidade com NX por padrão. Além disso, se a política DEP do sistema estiver definida como AlwaysOn, os aplicativos que incorporam o código de desvio mais antigo (usado para traduzir endereços de memória (ponteiros) entre código de 16 bits e 32 bits) verão esse problema.
Resolução
Crie o Project com a configuração nos eventos post-build para remover a opção /NXCOMPAT da seguinte forma no Visual Studio 2008:
1) Abra o projeto SDK 7.0 com Visual Studio 2008.
2) Clique com o botão direito do mouse e selecione propriedades 3) Selecione a guia Compilar 4) Clique no botão "Criar Eventos" na parte inferior 5) Adicione o seguinte aos eventos
"Post-build" chamada
"$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) Salvar e compilar o projeto
Informações adicionais
Consulte http://support.microsoft.com/kb/948468 para obter mais informações.