x64のMessageBox APIの動作の不思議

実は微妙にx64のmanifestによる意外な落とし穴の続きだったりする話です。

とりあえずメッセージボックスを表示できるようになった~と思っていろいろとくみ上げて細工をしていったのですが、

汎用エラー処理(汎用例外時にレジスタ状態などの表示)を行おうと言うことでメッセージボックスを使おうとして、

エラーを表示させてみようとしました。とりあえず意図的に

*((int *)NULL) = -1;

を追加してエラーを発生させるようにして実行。

・・・あれ?表示されない?しかもそのまま落ちてる?

というわけで、またもや表示されないという悲劇が。ちなみにプログラムが完全に起動した後のメッセージボックスはなぜか表示されます。

これこそ訳がわかりません。もちろん、単体プログラムで表示させるなら表示できますし、例外処理時にメッセージボックスが使えない、ということもありません。

(Win32と共通となるコート上では正常に動作しているので大丈夫だろうと踏んでいます。)

やっぱりよくわからないMessageBox君でした。というよりはこれもmanifestのミスのような気がしないでもないです。この辺がちょっと微妙なx64プログラム君ですかね~

LINEで送る
[`fc2` not found]
このエントリーを Google ブックマーク に追加

コメントを残す

メールアドレスが公開されることはありません。

*

この記事のトラックバック用URL