предупреждение 4996
От: Аноним  
Дата: 04.07.08 14:49
Оценка: -1
Использую в программе функцию _itow(val, str, 10);
При дебаге всё хорошо, но при сборке релиза выдаёт предупреждение 4996. Что это такое?
Re: предупреждение 4996
От: Were  
Дата: 04.07.08 15:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Использую в программе функцию _itow(val, str, 10);

А>При дебаге всё хорошо, но при сборке релиза выдаёт предупреждение 4996. Что это такое?

Это MS типа секурные функции придумало, чтобы уменьшить вероятность переполнения буфера в приложениях.
Юзать _itow_s(...), либо объявить _CRT_SECURE_NO_DEPRECATE для препроцессора.
Re: предупреждение 4996
От: GGoga  
Дата: 04.07.08 15:07
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Использую в программе функцию _itow(val, str, 10);

А>При дебаге всё хорошо, но при сборке релиза выдаёт предупреждение 4996. Что это такое?

"Стандартный" случай Вот что в МСДН пишут по этому поводу:

The compiler encountered a function that was marked with deprecated. The function may no longer be supported in a future release. You can turn 
this warning off with the warning pragma (example below).
C4996 is generated for the line on which the function is declared and for the line on which the function is used.
You will see C4996 if you are using members of the <hash_map> and <hash_set> header files in the std namespace. See The stdext Namespace for more
information.
Some CRT functions have been deprecated in favor of new, more secure functions. For more information on deprecated CRT functions, see Security
Enhancements in the CRT.
C4996 can also occur if you use MFC or ATL functions that were deprecated for security reasons. To suppress these warnings, see
_AFX_SECURE_NO_DEPRECATE and _ATL_SECURE_NO_DEPRECATE.


Сделай так:
#pragma warning(disable: 4996)


Или используй функцию:
errno_t _itow_s(int value, wchar_t *buffer, size_t sizeInCharacters, int radix);


Хотя многие функции с постфиксом *_s не реализованы например для КПК-шек, для этих целей можно использовать макрос #ifdef.
Но вариант с #pragma-ой наверное будет самым оптимальным
Re[2]: предупреждение 4996
От: Alex Alexandrov США  
Дата: 04.07.08 20:10
Оценка: +1
Здравствуйте, GGoga, Вы писали:

GG>Сделай так:

GG>
GG>#pragma warning(disable: 4996)
GG>


Или лучше так:

#pragma warning(push)
#pragma warning(disable: 4996)
// Use the deprecated functions
#pragma warning(pop)
It's kind of fun to do the impossible (Walt Disney)
Re[3]: предупреждение 4996
От: Were  
Дата: 04.07.08 21:16
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Здравствуйте, GGoga, Вы писали:


GG>>Сделай так:

GG>>
GG>>#pragma warning(disable: 4996)
GG>>


AA>Или лучше так:


AA>
AA>#pragma warning(push)
AA>#pragma warning(disable: 4996)
AA>// Use the deprecated functions
AA>#pragma warning(pop)
AA>


Тогда уж лучше так
#pragma warning( suppress : 4996 )
// Use deprecated function
Re[3]: предупреждение 4996
От: GGoga  
Дата: 05.07.08 10:44
Оценка:
Здравствуйте, Alex Alexandrov, Вы писали:

AA>Или лучше так:


AA>
AA>#pragma warning(push)
AA>#pragma warning(disable: 4996)
AA>// Use the deprecated functions
AA>#pragma warning(pop)
AA>


Интересно Не знал о такой записи Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.