реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Когда можно использовать препроцессор в MS VC++ 6.5?, Невозможно до включения стандартной библиотеки применить препроцессор
Николай Иванович...
сообщение Oct 12 2008, 10:47
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Когда можно использовать препроцессор в MS VC++ 6.5?
Невозможно до включения стандартной библиотеки применить препроцессор.
В чём причина?

Почему так компилируется (#include "stdafx.h" расположен раньше первой препроцессорной директивы #ifdef):


#include "stdafx.h"" // Включение библиотеки до использования препроцессора

#define Prog1
#ifdef Prog1
// Вывод текстового сообщения на экран в стиле C
int main ( int argc , char *argv[] )
{
printf ( "Hello World!\n" ) ;
return 0 ;
}
#endif


а так нет (#include "stdafx.h" расположен в теле первой препроцессорной директивы #ifdef) (выдаётся ошибка: «fatal error C1020: unexpected #endif»):

#define Prog1
#ifdef Prog1
#include "stdafx.h" // Включение библиотеки в ветке условной компиляции

// Вывод текстового сообщения на экран в стиле C
int main ( int argc , char *argv[] )
{
printf ( "Hello World!\n" ) ;
return 0 ;
}
#endif



[u]Т.е. получается что пока не включишь в исходник какую-нибудь из системных библиотек препроцессорные средства недоступны?[/u]
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 12 2008, 12:57
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



И ещё.

Получается, что НЕ включать в исходник стандартные библиотеки нельзя? sad.gif

Даже если мне не нужны средства стандартной библиотеки?

Почему при компиляции проги

Код
        void main ( void )
        {
            int i;
            // -------------------------------
            i = 1;
            // -------------------------------
            return;
        }


Компилятор выдаёт ошибку: fatal error C1010: unexpected end of file while looking for precompiled header directive

Сообщение отредактировал Николай Иванович Приходько - Oct 12 2008, 13:02
Go to the top of the page
 
+Quote Post
makc
сообщение Oct 12 2008, 13:07
Сообщение #3


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Отключите использование precomiled headers и включать stdafx.h будет не нужно.


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 12 2008, 13:20
Сообщение #4


Частый гость
**

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Цитата(makc @ Oct 12 2008, 17:07) *
Отключите использование precomiled headers и включать stdafx.h будет не нужно.

А где?
Чёта не могу найти такую галку crying.gif
Go to the top of the page
 
+Quote Post
Edmundo
сообщение Oct 12 2008, 14:35
Сообщение #5


Мастер
****

Группа: Свой
Сообщений: 730
Регистрация: 18-02-06
Из: Москва
Пользователь №: 14 474



Цитата(Николай Иванович Приходько @ Oct 12 2008, 17:20) *
А где?
Чёта не могу найти такую галку crying.gif

Project -> Settings -> C/C++ -> Category: Precompiled Headers


--------------------
شامل
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 12 2008, 18:31
Сообщение #6


Частый гость
**

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Цитата(Edmundo @ Oct 12 2008, 18:35) *
Project -> Settings -> C/C++ -> Category: Precompiled Headers

Спасибо. Нашёл.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 17:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016