スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

VC++ F12キー 

ファンクションキーをショートカットキー(アクセラレータキー)として使う処理を作っていて、いざデバッグでテストをしたらF12キーを押すとなぜか例外が発生。
特に原因が分からずブレークポイントを設定したらブレークポイントにいったあたりでPCごとフリーズした様な状態に。
デバッグを終わらせようにもまったく動かずお手上げ状態…
何とか数分かけてデバッグを終わらせるもまったく原因がわからず…
それも例外を発生したソフトだけでなく他のソフトの操作も出来ない状態だったのでおそらくはCPUあたりに負荷が掛かったのだろうか…

1回目は何とか終わらせて原因っぽいところを直して再度やるもやっぱり例外発生、今回もほとんど動かなくなったので結局強制的に電源を切って終わらせる羽目に。
何とか終わらせようとフリーズの状態で何度もクリックしたり、強制終了したのでメモリやHDを壊してなければ良いけど…

何度やってもフリーズのような状態になるのでもしかしたらF12キーは使えないんじゃないかと調べてみたら使えはしたけど例外の原因を発見。
何とVC++でのデバッグ中にF12キーを押すと強制的に例外を発生させる機能になっていたらしい…
結局、こっちの処理の記述は間違ってなかった…
ただVC側が原因なら位置が悪かったりしたのかもしれないけどブレークポイントを設定したくらいで半フリーズ状態になるのは勘弁してほしい…

調べた結果、レジストリの値を変えることで例外を発生させるキーを変更できるということで変更して、Windowsを再起動するとF12キーを押しても無事処理が実行されました。

変更するキーは[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]の[UserDebuggerHotKey]の値。
0x00000000だとF12キーなのでこれを変更したいキーのキーコードにすると変更できた。
「VC F12 例外」で検索するともう少し詳しく出てくると思います。
それにしても一時はメモリの破損も覚悟するくらいほとんど動かなかった…、最初は配列指定ミスでメモリのデータを破壊しておかしくなったと思ったし。
第一、例外発生した後PC自体がフリーズのような状態になるなんて今まで無かったのでかなりびびった。
こういう事態はプログラム機ではそれなりに覚悟はしてますが最近ほぼメイン機になってきてるので壊れると結構困る…

何とかこの危機も乗り越えたのでほぼ現時点で「MLM MP3 Player」に付けたいと思っていた機能は完成。
これからテストしたり調整したりしていよいよ正式版候補のβ版を公開する予定。
何とか今月中のβ版公開を目指してやっていこうと思っています。
スポンサーサイト

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://inugami2.blog27.fc2.com/tb.php/55-22a4e285

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。