VB2005開発環境の「デバッグの停止」ボタンでデバッグを
中止したときに発生するイベント ってありますでしょうか?
ADボードを使ったアプリを作っているのですが、ボードのクローズ処理を
しないと、ボードが使用不可になってしまいます。
FormClosingにはボードのクローズ処理を書いてあるのですが、
「デバッグの停止」ボタンはイベントが引っ掛かりません。
四角のボタンを押さないように気をつけているのですが、ついうっかり押して
毎回 再起動しています。
検索してみましたが・・・・。良い方法が見つかりません。
よろしくお願いします
デバッグの停止で動作するイベントはわかりませんが、
案として以下を提案。
毎回のオープン処理を行う直前に
クローズ処理をするのはダメですか?
どこのメーカーのA/Dボードをお使いか解りませんが・・・
一般的にA/D変換中にデバッグの停止を行うと、ドライバ
内部の割り込みが止まらずに保護違反して、最悪OSクラッ
シュやOSの再起動となります。
これはA/Dボードのドライバーや提供されているAPIの
出来に依存しますので・・・A/Dオープン後ならデバッグ
の停止を行わないようにするしかありません。
最低限の回避方法としては・・・
A/Dボードアクセス機能を別のクラスライブラリ(DLL)
にして、Implements iDisoise属性を付け、Dispose時かFinalse
時にオープンしていたらクローズする・・・と言う機能を付
加するくらいでしょうか。
それでもOSクラッシュや再起動は完全には防げませんし、
オープンされたまま、クローズできずに再オープンもできませ
ん。
可能か不可能か解りませんが・・・
A/Dボードのデバイスを無効化して有効化することで回復で
きるケースがあります。が、A/Dボード上で割り込み変換中
であった場合は、クラッシュ・再起動は防げません。
以上。参考まで
ミッキー様
アドバイスありがとうございます。
オショウ様
ご無沙汰しております。
検索&実験してみましたが
「デバッグの停止」 = 強制終了の様で
ソフト上で検出は出来ない感じです。
今まで使っていたボードは、「デバッグの終了」
でも問題なかったのですが、別の機種に代えたら・・・。
停止ボタンを押さないように気をつけてDebugします。
ありがとうございました。
ツイート | ![]() |