私が取り組んでいる Windows アプリケーションがあり、デバッグ中に奇妙な問題が発生しました。私は WTL を使用しており、フォームに日付を設定する CDateTimePickerCtl があります。メッセージ マップで次のように DTN_DATETIMECHANGE イベントを処理しています。
NOTIFY_HANDLER(CONTROL_ID_DATE, DTN_DATETIMECHANGE, OnDateChanged)
アプリがブレークポイントなしでデバッガーで実行されている場合、これは正常に機能します。OnDateChanged 関数にブレーク ポイントがある場合、最初の行であっても、ドロップダウン カレンダーで時刻を変更すると VS がハングします。コントロールに入力して日付を編集しても問題ありません。
OnDateChanged で PostMessage を呼び出し、アプリケーション固有のメッセージで問題を回避しようとしたこともありますが、そのメッセージ ハンドラーにブレーク ポイントがあると、同じ奇妙な問題が発生します。
それはさらに奇妙になります。VS がハングするだけでなく、VS がハングすると、他のアプリケーションもハングします。IE 10、Chrome、Outlook はハングしますが、メモ帳はハングしません。これは完全に再現可能です。
タスクマネージャーを介してVSを数回強制終了する必要があります。
私が MS Connect で開いたチケットは、次の場所で確認できます。
私が持っている主な質問は、他の誰かがこの問題を見たことがあるかどうか、および/または再現できるかどうかです. ここで別の開発者に同じコードを使用して別のマシンで再現してもらいましたが、コードの簡素化されたバージョンをまとめてレポすることはしていません。
また、Win7 64 ビットで VS 2008 を実行していることにも注意してください。