Member 14629414 Ответов: 1

Как я могу исправить ошибку C4996?


Привет, я создал новый проект в visual studio 2019 и импортировал ресурс кода из исходного файла. Но при компиляции он пришел с этой ошибкой:

C4996: 'getch':имя POSIX для этого элемента устарело. Вместо этого используйте соответствующее ISO C и C++ имя: _getch
Вот программа на том месте где была показана ошибка:
int	c;

	dltXY = XY_DLT; dltAB = AB_DLT;

	flag_move = 0;
	c = getch();
	c = toupper(c);
	if (c == 'Q')
		return 1;


Что я уже пробовал:

Я попытался решить другую проблему, которая касается
struct sockaddr_in sa
функция, но я не понимаю этой ошибки, поэтому я застрял с ней.

KarstenK

Поймите такие сообщения об ошибках как совет от какого-то коллеги-программиста, который намекнул вам на какую-то ошибку. Может быть, он не очень хорошо объясняет все это. :-)

1 Ответов

Рейтинг:
0

Richard MacCutchan

Сделайте то, что говорит вам сообщение об ошибке, и измените вызов функции на _getch() При преобразовании кода VC++ 6.0 может обнаружиться ряд несовместимых функций; вам просто нужно изменить их, чтобы они соответствовали последним стандартам.

Видеть Предупреждение компилятора (Уровень 3) C4996 | Microsoft Docs[^] для объяснения. Обратите внимание, что это так нет рекомендуется отключить это предупреждающее сообщение.


Member 14629414

@Ричард MacCutchan
Спасибо за ваш ответ
Я превратил его в _getch()
Тогда я получаю больше ошибок при его компиляции

Richard MacCutchan

Да, и вам нужно посмотреть на эти ошибки одну за другой и исправить их.