実は微妙にx64のmanifestによる意外な落とし穴の続きだったりする話です。
とりあえずメッセージボックスを表示できるようになった~と思っていろいろとくみ上げて細工をしていったのですが、
汎用エラー処理(汎用例外時にレジスタ状態などの表示)を行おうと言うことでメッセージボックスを使おうとして、
エラーを表示させてみようとしました。とりあえず意図的に
*((int *)NULL) = -1;
を追加してエラーを発生させるようにして実行。
・・・あれ?表示されない?しかもそのまま落ちてる?
というわけで、またもや表示されないという悲劇が。ちなみにプログラムが完全に起動した後のメッセージボックスはなぜか表示されます。
これこそ訳がわかりません。もちろん、単体プログラムで表示させるなら表示できますし、例外処理時にメッセージボックスが使えない、ということもありません。
(Win32と共通となるコート上では正常に動作しているので大丈夫だろうと踏んでいます。)
やっぱりよくわからないMessageBox君でした。というよりはこれもmanifestのミスのような気がしないでもないです。この辺がちょっと微妙なx64プログラム君ですかね~