現象
Microsoft Dynamics SL 7.0 Feature Pack 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 によって "No eXecute Compatible" として扱います。 2008 Visual Studioインストールすると、その後 VS 2008 または VS 2005 でビルドされたプログラムによって、NX の互換性が既定で有効になります。 また、システムの DEP ポリシーが AlwaysOn に設定されている場合は、古いサンクコードを組み込むアプリケーション (メモリ アドレス (ポインター) を 16 ビットと 32 ビットコードの間で変換するために使用されます) には、この問題が発生します。
解決策
2008 Projectに示す /NXCOMPAT スイッチを削除するには、ビルド後のイベントで 設定を使用してVisual Studioします。
1) SDK 7.0 プロジェクトを 2008 年Visual Studio開きます。
2) プロパティを右クリックして選択する 3) [コンパイル] タブを選択します 4) 下部の [ビルド イベント] ボタンをクリックします。"ビルド後" イベント呼び出し
"$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"
6) プロジェクトを保存してビルドします。
詳細情報
詳細については 、「http://support.microsoft.com/kb/948468」 を参照してください。