Устранение потенциальных проблем при работе с многопотоковыми программами
При создании, связывании и выполнении многопотоковых программ на языке C может возникать ряд проблем. В следующей таблице приведено описание наиболее распространенных проблем. (Описание аналогичных проблем с точки зрения MFC см. в разделе Рекомендации по многопоточному программированию.)
Проблема |
Вероятная причина |
---|---|
Отображается окно с сообщением об ошибке нарушения защиты в программе. |
Нарушение защиты может быть вызвано различными ошибками программирования Win32. Одной из распространенных причин нарушения защиты является неявное присваивание данных пустому указателю. В результате этого осуществляется попытка обращения к памяти, не принадлежащей программе, что приводит к нарушению защиты. Чтобы определить причину нарушения защиты, скомпилируйте программу в режиме отображения отладочной информации, после чего запустите ее с помощью отладчика среды Visual C++. В случае нарушения защиты управление передается из операционной системы Windows в отладчик. При этом курсор устанавливается в строку, в которой возникла ошибка. |
В программе возникает большое число ошибок компиляции и связывания. |
Чтобы устранить большинство потенциальных проблем, установите одно из наибольших значений уровня предупреждений компилятора и просматривайте предупреждающие сообщения. При выборе уровня предупреждений 3 или 4 обнаруживаются непреднамеренные преобразования данных, отсутствующие прототипы функций а также использование несовместимых со стандартами ANSI функций. |
См. также
Основные понятия
Реализация многопоточности на языке C с помощью функций Win32