Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
#1

Новые прибабахи в 2012 - C++

04.09.2012, 19:04. Просмотров 1965. Ответов 32
Метки нет (Все метки)

Вот получаю такую фиговину в новой студии 2012

1>c:\users\ramyb\documents\visual studio 2012\projects\detla\detla\detla.cpp(15): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 11.0\vc\include\string.h(110): см. объявление "strcpy"

Раньше всегда пользовался функцией strcpy(), а сейчас насильно заставляют использовать strcpy_s().

Как отключить эту байду, чтобы как прежде было?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 19:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Новые прибабахи в 2012 (C++):

Новые массивы - C++
Здравствуйте. Имеется код( транспонирование матрицы). Потом мне нужно будет умножить 2 матрицы. Чтобы это сделать нужно чтобы каждый массив...

Новые новины из С++11 - C++
ну может для кого не новые, для меня новые что за auto что оно делает? как оно так может auto& x: myvector? и вуаля! мне недавно...

Вычислить новые значения - C++
Даны 2 переменные целого типа A и В. Если их значения не равны,то присвоить каждой переменной сумму этих значений, а если равны то...

Почему создаются новые объекты? - C++
Всем доброго времени суток! Я не могу понять где создаются новые объекты Есть у меня простенький класс class data { char* str; ...

C++11 новые классы стандартной библиотеки - C++
Здравствуйте. Программирую в eclipse на С++, использую С++11. Код в новом стандарте компилируется, однако мне нужен новый класс...

VS 2012 - C++
Установил компилятор VS 2012, думал что он поддерживает новый стандарт С++11, но почему то не все фичи можно использовать, может какой - то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
04.09.2012, 19:05 #2
ramybozy, Я вот даже не знаю... Если в ошибке написано, почему бы не прочесть?

To disable deprecation, use _CRT_SECURE_NO_WARNINGS
1
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
04.09.2012, 19:21  [ТС] #3
Ну а как это сделать?
Я пробовал так:
C++
1
#define _CRT_SECURE_NO_WARNINGS
Не помогает.
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
04.09.2012, 19:25 #4
ramybozy, Да вообщем-то в студии в настройках проекта (где конкретно не помню, там где все define-ы указываются - -D_CRT_SECURE_NO_WARNINGS
0
Петррр
5957 / 3394 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
04.09.2012, 19:27 #5
Как отключить _CRT_SECURE_NO_WARNINGS?
0
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
04.09.2012, 19:40  [ТС] #6
Ну это слишком просто, можно и в свойствах проекта просто указать блокировку предупреждения 4996, но, как я сказал, это слишком просто, нам бы что-нибудь посложней, так чтобы и предкомпилированные заголовки можно было использовать, и чтобы прежние функции работали.

А так то любой сможет.

Добавлено через 9 минут
ВАУ!!! Нашел!!!
Вот оно лекарство:
C++
1
#define  _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.09.2012, 19:45 #7
Но всё же, лучше использовать strcpy_s. Потеря производительности минимальна, а повышение стабильности - колоссальна.
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
04.09.2012, 20:32 #8
Deviaphan, Отсутствие компилируемости на других платформах аналогично стабильно)
0
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1287 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
04.09.2012, 20:43 #9
Разве strcpy_s это плюшка MSVS? Грустька.
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
04.09.2012, 20:44 #10
Deviaphan, ага
Да и в стандарте про нее ничего нету.
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
05.09.2012, 09:24 #11
Наверное все что советует студия вместо стандартных функций - это есть ее собственные плюшки. Правда некоторые другие компиляторы их уже тоже поддерживают (могу ошибаться, но вроде Watcom поддерживает студийные функции).

Не по теме:

Я думаю, что Watcom'овцы добавили эту поддержку, что б студийный код был хоть как-то переносимым. Типа:"В майкрософт думали, что привязали код к компилятору, а вот хрен вам, мы его тоже компилим "



Добавлено через 2 минуты
Вот, что нашел.
0
ramybozy
8 / 8 / 0
Регистрация: 01.07.2012
Сообщений: 138
05.09.2012, 10:13  [ТС] #12
Цитата Сообщение от ForEveR Посмотреть сообщение
Да и в стандарте про нее ничего нету.
Это еще фигня. strcpy и strcat еще можно вылечить, как указано выше, а вот strtok уже так не лечится, приходится использовать strtok_s с тремя аргументами.
Зато в этой новой студии теперь можно пользоваться range-based оператором for, а также уже работает директива
C++
1
#include <thread>
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 10:29 #13
например, ситуация (создаю искусственно, но может бабахнуть само из-за угла):
C++
1
2
3
4
5
6
char buffer[5];
int i = 0;
::strcpy (buffer, "something longer as five characters");
if (i == 0){
  makeSomeVeryImportantThing(); // не будет выполнено скорее всего.
}
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.09.2012, 10:46 #14
novi4ok, strncpy никто не отменял
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 23:31 #15
Цитата Сообщение от ForEveR Посмотреть сообщение
novi4ok, strncpy никто не отменял
да вообще никто ничего не отменял, только язык себя изживает потихоньку. еще лет пять, и будет реликт.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2012, 23:31
Привет! Вот еще темы с ответами:

Проблемы с VS 2012 - C++
Имеется код, он прекрасно работает в Visual Studio 2008, но при компиляции в 2012 версии выдает такую вот ошибку. Как от нее можно...

MPI в VS 2012 - C++
Здраствуйте, у меня возникла проблема с настройкой библиотеки &quot;mpi.h&quot; студия 2012 стоит. Гуглил, настроики облазил, только хуже сделал(( ...

VC 2012 изи - C++
не могу сделать задачу , хелпаните изи же Утворити файл, який містить інформацію про асортимент взуття в крамниці фірми. Структура...

Не записывает новые данные в файл телефонный справочник - C++
Пишу программу телефонный справочник с возможностью добавлять абонента через консоль, в консоле абонент добавляться нормально но когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.09.2012, 23:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru