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

Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.89
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 12:13     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #1
Здравствуйте Товарищи

Хочу, организовать себе памятку на будущее (чтобы потом поправить код) надумал использовать диррективу препроцессора #warning.
НО тут проблема, в компиляторе Visual Studio 2008, её почему-то нет (может расскажете почему именной её убрали ), ну не заменять же её #error - кой

Может кто в курсе, как решить этот вопрос, буду очень признателен за помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2010, 12:13     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008
Посмотрите здесь:

C++ Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему?
Народ, можно ли Visual Studio 2008... C++
несовместимость visual c++ 6.0 и visual studio 2008 C++
несовместимость visual c++ 6.0 и visual studio 2008 C++
C++ где можно скачать visual studio 2008
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
28.07.2010, 13:24     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #2
А точно нет? (просто у меня нету 2008)
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:11  [ТС]     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #3
Цитата Сообщение от Evg Посмотреть сообщение
А точно нет? (просто у меня нету 2008)
Точно. Компилятор выдает ошибку:
fatal error C1021: недопустимая команда препроцессора 'warning'
И в перечне команд препроцессора её нету
Может в #pragma ...
Сейчас читаю, пытаюсь разобраться
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
28.07.2010, 14:15     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #4
А это Си\Си++ или уже что-то из .net?

Добавлено через 1 минуту
Странно конечно. Но можно завести локальную переменную

C
1
char *p = "предупреждение на будущее";
а компилятор будет выдавать предупреждение, что переменная не использована. Но это вариант через ж...у
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:17  [ТС]     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #5
Приведу пример:
C++
1
2
3
4
5
6
7
8
#include <iostream>
 
void main()
{
    std::cout << "dkfj";
    #warning "Макрос DEBUG устаревший, надо заменять его на DEBUG_LEVEL"
    system ("pause");
}
ошибка та же
main.cpp(6) : fatal error C1021: недопустимая команда препроцессора 'warning'
Может я неправильно ее использую?
Evg, сам #warning взял из твоей статьи
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.07.2010, 14:21     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #6
Аналогично в 2005

Error 1 fatal error C1021: invalid preprocessor command 'warning' c:\documents and settings\admin\мои документы\visual studio 2005\projects\перенос на ноут\warn\warn.cpp 2

В любом случае причем. Если писать #warning в начале программы полностью аналогичная ошибка.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
28.07.2010, 14:26     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #7
Вот ёлки зелёные... Оно даже в C# есть: http://msdn.microsoft.com/ru-ru/library/963th5x3.aspx
Как вариант попробуй, чтобы оно в начале строки находилось (а не с отступом в 4 пробела) или без кавычек

С другой стороны не у одного тебя такая трабла: http://www.rsdn.ru/forum/cpp.applied/2018572.flat.aspx
Короче говоря, тёмное дело какое-то
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.07.2010, 14:32     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #8
Аналогично в Visual C++ 2010
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
28.07.2010, 14:40     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #9
А в borland'е?
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:44  [ТС]     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #10
Всем спасибо за попытки помочь
Таким образом, придется написать себе памятку в коментах
Снова МелкоМягкие какую-то фигню уткнули
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
28.07.2010, 14:44     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #11
Сами микрософтеры советуют такой же приём, который описан по второй ссылке из поста #7
http://support.microsoft.com/kb/155196
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.07.2010, 14:45     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #12
Цитата Сообщение от FireNovel Посмотреть сообщение
Всем спасибо за попытки помочь
Таким образом, придется написать себе памятку в коментах
Снова МелкоМягкие какую-то фигню уткнули
Используй #pragma message
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
28.07.2010, 14:46     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #13
FireNovel, я вообще никогда не слышал про препроцессорны #warning
пользуюсь вот такой вещью
C
1
#pragma message ("WARNING! Макрос DEBUG устаревший, надо заменять его на DEBUG_LEVEL")
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
28.07.2010, 14:51     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #14
Evg, мне вот что-то отсюда не понятно, зачем нужен макрос __STR1__(x), и почему бы вместо него сразу не вызывать __STR2__(x)?
FireNovel
 Аватар для FireNovel
150 / 73 / 8
Регистрация: 09.04.2010
Сообщений: 297
28.07.2010, 14:54  [ТС]     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #15
Цитата Сообщение от Nameless One Посмотреть сообщение
Используй #pragma message
Да, я так и поступлю,
но на него(просто сообщение), действительно, внимание не особо обращается, а вот предупреждения глаза мусолят порядком
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2010, 15:02     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008
Еще ссылки по теме:

C++ Visual studio 2008 C++
Visual Studio 2008 C++
C++ Как в Visual Studio 2008 можно редактировать главный фрейм?

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
28.07.2010, 15:02     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008 #16
Цитата Сообщение от fasked Посмотреть сообщение
пользуюсь вот такой вещью
В 90% случаев сообщение без привязки к исходнику бесполезно. Понятно, что find'ом всё можно найти, но непонятно, почему микрософтеры сделали сложным то, что у всех сделано просто

Цитата Сообщение от Nameless One Посмотреть сообщение
Evg, мне вот что-то отсюда не понятно, зачем нужен макрос __STR1__(x), и почему бы вместо него сразу не вызывать __STR2__(x)?
Чтобы сделать подстановку значения другого макроса в виде строки. Значение макроса __LINE__ - это по сути целое число (например, 21). Если вызывать непосредственно макрос __STR2__, то получим строку "__LINE__" вместо желаемого "21". В момент вызова STR1 у нас происходит замена __LINE__ на 21, а в момент вызова __STR2__ - замена 21 на "21". Надо будет про это в статью дописать
Yandex
Объявления
28.07.2010, 15:02     Можно ли использвовать диррективу препроцессора #warning в Visual Studio 2008
Ответ Создать тему
Опции темы

Текущее время: 14:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru