Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибки типа 'gets' name was marked as deprecated 
:(
    Опции темы
Dims
Дата 3.12.2009, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Возникает куча варнингов типа 

c:\program files\microsoft visual studio 9.0\vc\include\cstdio(49) : warning C4995: 'gets': name was marked as #pragma deprecated
c:\program files\microsoft visual studio 9.0\vc\include\cstdio(53) : warning C4995: 'sprintf': name was marked as #pragma deprecated
c:\program files\microsoft visual studio 9.0\vc\include\cstdio(56) : warning C4995: 'vsprintf': name was marked as #pragma deprecated

Причём, как видно, не у меня, а в глубоко закопанном инклюде, который проистекает он

#include <iostream>

Как правильно использовать этот инклюд чтобы не было варнингов?
PM MAIL   Вверх
586
Дата 3.12.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 8
Всего: 146



Цитата(Dims @  3.12.2009,  18:42 Найти цитируемый пост)
Возникает куча варнингов типа 

c:\program files\microsoft visual studio 9.0\vc\include\cstdio(49) : warning C4995: 'gets': name was marked as #pragma deprecated

Это заморочки Microsoft - они рекомендуют использовать ихние безопасные функции, название которых заканчивается на _s (например, gets_s, sprintf_s, и т.д.).
Этот варнинг можно отключить, объявив директиву препроцессора _CRT_SECURE_NO_DEPRECATE. Объявить её можно в настройках проекта, либо, перед инклудами в stdafx.h.

Это сообщение отредактировал(а) 586 - 3.12.2009, 20:16
PM   Вверх
Dims
Дата 3.12.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Так я не использую эти функции, в том-то и дело! Ошибка возникает от самого факта включения iostream.
PM MAIL   Вверх
bsa
Дата 4.12.2009, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



реализацию библиотеки iostreams делали люди, которые были незнакомы с мнением Microsoft по этому поводу.
PM   Вверх
Dims
Дата 17.12.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



В общем, вроде бы, чтобы не было этих ошибок, надо ВКЛЮЧИТЬ stdio.h
Ерунда, ошибся, дело не в этом

Это сообщение отредактировал(а) Dims - 17.12.2009, 15:15
PM MAIL   Вверх
Dims
Дата 4.1.2010, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



В общем, ни определение

_CRT_NONSTDC_NO_DEPRECATE

ни определение 

_CRT_SECURE_NO_DEPRECATE

ни определение

_CRT_NONSTDC_NO_WARNINGS

ни определение

_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 

не спасают от данных варнингов.
PM MAIL   Вверх
zim22
Дата 4.1.2010, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Dims @  4.1.2010,  16:40 Найти цитируемый пост)
В общем, ни определение...не спасают от данных варнингов.

а как и где ты их определяешь?

Это сообщение отредактировал(а) zim22 - 4.1.2010, 18:30


--------------------
PM MAIL   Вверх
Dims
Дата 4.1.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Систематическую проверку сделал для файла stdafx.h проекта.

Делал так

#define <имя>

и так

#define <имя> 1

постепенно добавляя все определения в файл.

Кстати, а как найти эту #pragma deprecate? Простого выражения я не нашёл, там какая-то сложная конструкция из дефайнов....


PM MAIL   Вверх
zim22
Дата 4.1.2010, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



попробуй ещё раз.
в файле stdafx.h самой первой строчкой вставь это:
#define _CRT_SECURE_NO_DEPRECATE

т.е. файл будет выглядеть так:
Код

#define _CRT_SECURE_NO_DEPRECATE
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//

#pragma once
...



--------------------
PM MAIL   Вверх
toxx
Дата 4.1.2010, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Отключил так... больше не беспокоило

Код

#pragma warning( disable : 4995 )

PM MAIL   Вверх
Dims
Дата 4.1.2010, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



zim22, не помогает.

Конкретно этот макрос у меня вообще в командной строке стоит, вот так:

/Od /I "C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\multimedia\directshow\baseclasses" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_CRT_SECURE_NO_DEPRECATE" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Yu"stdafx.h" /Fp"Debug\UtteranceGrabber4.pch" /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /nologo /c /ZI /TP /errorReport:prompt

Добавлено через 1 минуту и 36 секунд
Цитата(toxx @ 4.1.2010,  22:52)
Код

#pragma warning( disable : 4995 )

Так это ж вообще все варнинги о депрекациях отключит
PM MAIL   Вверх
toxx
Дата 5.1.2010, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 653
Регистрация: 4.3.2009
Где: НН

Репутация: 4
Всего: 13



Dims

Да отключит, я думал вы к этому и стремитесь.
Раз эти функции работают, но просто вылазиет этот ворнинг(который как я понял бесполезен), то почемубы не отключить его.
PM MAIL   Вверх
zim22
Дата 5.1.2010, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 29
Всего: 69



Цитата(Dims @  4.1.2010,  22:49 Найти цитируемый пост)
 не помогает.

приаттачь тестовый проект в котором проявляются такие проблемы. я гляну.


--------------------
PM MAIL   Вверх
Dims
Дата 5.1.2010, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: нет
Всего: 11



Цитата(toxx @  5.1.2010,  00:03 Найти цитируемый пост)
Да отключит, я думал вы к этому и стремитесь.

Хотелось бы отключать по минимуму.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.