0

私が取り組んでいる 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 で開いたチケットは、次の場所で確認できます。

https://connect.microsoft.com/VisualStudio/feedback/details/799690/break-point-in-vs-2005-when-debugging-c-gui-hangs-vs-and-other-applications-running-on-システム-if-calendar-control-has-calendar-displayed

私が持っている主な質問は、他の誰かがこの問題を見たことがあるかどうか、および/または再現できるかどうかです. ここで別の開発者に同じコードを使用して別のマシンで再現してもらいましたが、コードの簡素化されたバージョンをまとめてレポすることはしていません。

また、Win7 64 ビットで VS 2008 を実行していることにも注意してください。

4

2 に答える 2

1

以前のバージョンの Windows では、コンボ ボックスで同じ問題が発生しました。特に、クローズ時にブレークポイントが設定され、別のコントロールのアクティブ化などによって開始された場合。問題が日時にも存在する可能性が非常に高いようです。このような場合、デバッグ目的で TRACE/ATLTRACE 呼び出しを使用することをお勧めします。

于 2013-09-06T22:00:09.980 に答える