![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
stat007 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 521 Регистрация: 9.10.2008 Репутация: -2 Всего: -4 |
Подскажите, почему компилятор ругается на функцию strncpy???
Компилятор выдаёт такую ошибку: warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Это сообщение отредактировал(а) stat007 - 23.11.2009, 11:59 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
потому что strncpy считается небезопасной, так как не добавляет \0 в конец буфера в случае, если строка в него не влезла.
|
|||
|
||||
siew |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 17.11.2009 Репутация: нет Всего: нет |
Так это же не ошика, а просто предупреждение.
Или оно тебя смущает? Добавлено через 5 минут и 30 секунд Ну, в качестве решений, компилятор предлагает либо использовать функцию strncpy_s либо прописать в опциях _CRT_SECURE_NO_WARNINGS. |
|||
|
||||
stat007 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 521 Регистрация: 9.10.2008 Репутация: -2 Всего: -4 |
siew,
Попробывал написать в коде: strncpy_s, вроде после этого ошибок нет, но после того как программа запустилать, вылетает неопределённая ошибка... Я прикрепил файл, посмотрите его плиз.... И ещё, где именно и в каких опциях нужно прописать: _CRT_SECURE_NO_WARNINGS ??? Присоединённый файл ( Кол-во скачиваний: 7 ) ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
stat007 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 521 Регистрация: 9.10.2008 Репутация: -2 Всего: -4 |
bsa, Отлично, использовал строку: #define _CRT_SECURE_NO_WARNINGS,
Правда выдаёт чегото 4 предупреждения, на всё те же строки в этом файле, все аналогичны этому:
|
|||
|
||||
siew |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 17.11.2009 Репутация: нет Всего: нет |
Определить _CRT_SECURE_NO_WARNINGS можно так, как пишет bsa. Я например директивы такого рода предпочитаю прописывать непостредственно в проекте. Для Microsoft VC директиву можно установить в Project -> Properties (Alt+7) -> Configuration Properties -> C/C++ -> General. В появившемся окне, в строке с Warning Level выбираешь грубо говоря уровень оповещения о предупреждениях. Ещё раз повторю что предупреждения не есть ошибки и с ними можно спокойно жить. В данном случае я бы оставил ту функцию которую ты исполбзовал в самый первы раз и поигрался бы с уровнями предупреждений. А ещё я бы убрал вот эти строчки:
#ifndef _MSC_VER using std::strncpy; #endif так как не вижу в них необходимости. Только лишний раз запутывают. Это сообщение отредактировал(а) siew - 25.11.2009, 09:23 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |