![]() |
|
Модераторы: bsa |
![]()
|
|
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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> Как правильно использовать этот инклюд чтобы не было варнингов? |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 8 Всего: 146 |
Это заморочки Microsoft - они рекомендуют использовать ихние безопасные функции, название которых заканчивается на _s (например, gets_s, sprintf_s, и т.д.). Этот варнинг можно отключить, объявив директиву препроцессора _CRT_SECURE_NO_DEPRECATE. Объявить её можно в настройках проекта, либо, перед инклудами в stdafx.h. Это сообщение отредактировал(а) 586 - 3.12.2009, 20:16 |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Так я не использую эти функции, в том-то и дело! Ошибка возникает от самого факта включения iostream.
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
реализацию библиотеки iostreams делали люди, которые были незнакомы с мнением Microsoft по этому поводу.
|
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
В общем, вроде бы, чтобы не было этих ошибок, надо ВКЛЮЧИТЬ stdio.h
Ерунда, ошибся, дело не в этом Это сообщение отредактировал(а) Dims - 17.12.2009, 15:15 |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
В общем, ни определение
_CRT_NONSTDC_NO_DEPRECATE ни определение _CRT_SECURE_NO_DEPRECATE ни определение _CRT_NONSTDC_NO_WARNINGS ни определение _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES не спасают от данных варнингов. |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
а как и где ты их определяешь? Это сообщение отредактировал(а) zim22 - 4.1.2010, 18:30 |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Систематическую проверку сделал для файла stdafx.h проекта.
Делал так #define <имя> и так #define <имя> 1 постепенно добавляя все определения в файл. Кстати, а как найти эту #pragma deprecate? Простого выражения я не нашёл, там какая-то сложная конструкция из дефайнов.... |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
попробуй ещё раз.
в файле stdafx.h самой первой строчкой вставь это: #define _CRT_SECURE_NO_DEPRECATE т.е. файл будет выглядеть так:
|
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
Отключил так... больше не беспокоило
|
|||
|
||||
| Dims |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 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 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
Dims
Да отключит, я думал вы к этому и стремитесь. Раз эти функции работают, но просто вылазиет этот ворнинг(который как я понял бесполезен), то почемубы не отключить его. |
|||
|
||||
| zim22 |
|
|||
|
depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
приаттачь тестовый проект в котором проявляются такие проблемы. я гляну. |
|||
|
||||
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
||||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |