読者です 読者をやめる 読者になる 読者になる

.NET / WebBrowser コントロールで Java アプレットを起動するとデータ実行防止(DEP)で落ちるとき

Windows VistaWindows XP SP2 で DEP がオンになっているとき、Javaアプレットをカスタム WebBrowser で実行すると AccessViolationException で落ちてしまう。実行時にはデータ実行防止(DEP)が働いたといわれる。
そんなときは、Visual Studio 2008 でプロジェクトのプロパティ⇒「ビルド イベント」⇒「ビルド後に実行するコマンド ライン」に

call "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"

を定義しておくと、「データ実行防止との互換性」が無いことになり、DEP が発生しなくなる。(ちなみに Release でビルドして、そのまま Visual Studio から実行すると vhost.exe の方で落ちてしまう。)
参照)
http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3818241&SiteID=1
http://msdn.microsoft.com/ja-jp/library/ms235442.aspx