1

win32 の例外「ウィンドウ ハンドルの作成中にエラーが発生しました」に関するヘルプを探しています。ときどき、私たちのプログラム (WinForms - C#) がこの例外をスローし、ウィンドウがフリーズすることさえあります。

この問題に関する他の多くのスレッドから、何を探すべきかはわかっていますが、プログラムが非常に大きいため、正確にはどこにあるのかわかりません。だから、私がチェックしなければならないコードラインを制限する方法があるかもしれないと思っていました...この例外に役立つツールはありますか?

4

2 に答える 2

2

短い更新: 問題を解決しました。

ProcDump はあまり役に立ちませんでした。ログファイルからほとんど同じ情報が得られたからです。しかし、弊社の開発環境ではエラーを再現することができました。デバッガーとタスクマネージャーでのユーザーオブジェクト数の表示のおかげで、メモリリークの原因が見つかりました - 動的に作成された未処理の texbox です。

ヒントをありがとう!

于 2013-10-25T09:13:18.800 に答える
1

この問題がデバッガー内で発生した場合は、例外のスロー時に中断するようにデバッガーを設定できます (C# を使用しているため、Visual Studio を想定しますか?)。あなたの場合、(私は思う)に例外ブレークポイントを設定したいと思うでしょうSystem.ComponentModel.Win32Exception

再び Visual Studio を IDE と仮定すると、[デバッグ] メニューには [例外...] 項目があります。これにより、特定の例外が a) スローされた場合、または b) 未処理の場合に中断するようにデバッガーに指示できます。

Common Language Runtime Exceptions の下で、 を展開System.ComponentModelし、Thrown 列のチェックボックスを有効にしますSystem.ComponentModel.Win32Exception

後は、通常どおりに実行してください。デバッグ中に例外が発生した場合は、プログラムに割り込んで、どこで発生しているかを確認できるようにする必要があります。

編集: 開発マシンで問題を再現できない場合は、クラッシュが発生したときにダンプを生成するようにターゲット マシンを設定できるかどうかを確認してください。これを行う 1 つの方法は、 ProcDumpを実行することです。パラメーターを指定して実行し-e、例外が発生した場合にダンプを作成します。その後、牧場でこれを分析できます。

于 2013-10-17T12:14:32.797 に答える