マルチスレッド プログラムの問題を回避する方法

更新 : 2007 年 11 月

マルチスレッド C プログラムの作成、リンク、または実行では、問題が発生する可能性があります。一般的な問題の一部の説明を次の表に示します。この問題に関する MFC の視点による説明については、「マルチスレッド : プログラミングのヒント」を参照してください。

問題

考えられる原因

プログラムによる保護違反を示すメッセージ ボックスが表示される。

Win32 での多くのプログラミング エラーは、保護違反の原因となります。保護違反の一般的な原因は、NULL ポインタにデータを間接的に割り当てることです。その結果、プログラムは、プログラムに属していないメモリにアクセスしようとするため、保護違反となります。

保護違反の原因を検出する簡単な方法は、デバッグ情報を取り込んでプログラムをコンパイルして、Visual C++ でデバッガを通して実行することです。保護違反が発生すると、Windows は、制御をデバッガに渡し、問題が発生した行にカーソルを置きます。

多数のコンパイル エラーとリンカ エラーが出力される。

潜在的な問題の多くは、コンパイラの警告レベルを最も高い値にセットして、警告メッセージに注意することにより取り除くことができます。警告レベル オプション 3 または 4 を使うと、意図しないデータ変換や、関数プロトタイプの不足、非 ANSI 機能の使用などを検出できます。

参照

概念

C と Win32 を使用するマルチスレッド