#ifdef для PCH и режимов
От: Doc Россия http://andrey.moveax.ru
Дата: 24.09.06 07:35
Оценка:
День добрый.

Вроде было, но найти не могу.
Какой define определен, если включены precompiled headers? (т.е. необходимо что бы в cpp stdafx.h включался только при необходимости)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: #ifdef для PCH и режимов
От: Vain Россия google.ru
Дата: 24.09.06 13:31
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Вроде было, но найти не могу.

Doc>Какой define определен, если включены precompiled headers? (т.е. необходимо что бы в cpp stdafx.h включался только при необходимости)
А какой компилятор? Незнаю, но в MSVC, к примеру, если не включить stdafx.h (или какой там у тебя PCH) в cpp на котором стоит Using Precompiled Header, то будет ругаться.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: #ifdef для PCH и режимов
От: Doc Россия http://andrey.moveax.ru
Дата: 24.09.06 14:19
Оценка:
Здравствуйте, Vain, Вы писали:

V>А какой компилятор?


MSVC 2005

V>Незнаю, но в MSVC, к примеру, если не включить stdafx.h (или какой там у тебя PCH) в cpp на котором стоит Using Precompiled Header, то будет ругаться.


так вот и хочу обернуть
#include "stdafx.h"
в #ifdef
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: #ifdef для PCH и режимов
От: Vain Россия google.ru
Дата: 24.09.06 16:13
Оценка:
Здравствуйте, Doc, Вы писали:

V>>Незнаю, но в MSVC, к примеру, если не включить stdafx.h (или какой там у тебя PCH) в cpp на котором стоит Using Precompiled Header, то будет ругаться.

Doc>так вот и хочу обернуть
Doc>#include "stdafx.h"
Doc>в #ifdef
Ну во первый если это и можно как-то сделать, то тогда уже вставить #ifdef внутрь stdafx.h.
Во вторых, а смысл? При включении в проект нового файла, настройки для PCH будут наследоваться и если там стоит Using Precompiled Header, а ты включаешь какойнить *.c из там ZLib'а, то компилиться всёравно не будет, а править исходники библиотеки нехорошо.
Если включаешь свой файл, то проще будет просто добавить
#include stdafx.h

и не париться.
К тому же, в stdafx.cpp надо будет включать stdafx.h без #ifdef.
Зачем тебе геморрой?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[4]: #ifdef для PCH и режимов
От: Doc Россия http://andrey.moveax.ru
Дата: 24.09.06 16:46
Оценка:
Здравствуйте, Vain, Вы писали:

V>Во вторых, а смысл?


Не с того конца смотришь. Т.е. #ifdef я прикручиваю к своему файлу. И дальше могу использовать его в любых проектах, независимо от того, включены в нем precompiled headers или нет.

#ifdef [что-то]
#include "stdafx.h"
#endif
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: #ifdef для PCH и режимов
От: Vain Россия google.ru
Дата: 24.09.06 19:35
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Не с того конца смотришь. Т.е. #ifdef я прикручиваю к своему файлу. И дальше могу использовать его в любых проектах, независимо от того, включены в нем precompiled headers или нет.


Doc>
Doc>#ifdef [что-то]
Doc>#include "stdafx.h"
Doc>#endif
Doc>

Исходники либо используют, либо не используют PCH, а следовательно либо подключают, либо не подключают stdafx.h.
Так смысл?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[6]: #ifdef для PCH и режимов
От: Doc Россия http://andrey.moveax.ru
Дата: 25.09.06 15:31
Оценка:
Здравствуйте, Vain, Вы писали:

V>Исходники либо используют, либо не используют PCH, а следовательно либо подключают, либо не подключают stdafx.h.

V>Так смысл?

Последний раз поясняю Файл на нескролько проектов. В одних стоит use precompiled headers, а других нет. Самому ему PCH не нужен. Если сделать через ifdef то про вопрос настройки можно просто забыть.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: #ifdef для PCH и режимов
От: Vain Россия google.ru
Дата: 25.09.06 18:08
Оценка:
Здравствуйте, Doc, Вы писали:

V>>Исходники либо используют, либо не используют PCH, а следовательно либо подключают, либо не подключают stdafx.h.

V>>Так смысл?
Doc>Последний раз поясняю
Может я тупой?
Doc>Файл на нескролько проектов.
С этого бы и начинал
Doc>В одних стоит use precompiled headers, а других нет.
Doc>Самому ему PCH не нужен. Если сделать через ifdef то про вопрос настройки можно просто забыть.
Настройку придётся делать всё равно, так как ты можешь подключить сторонние файлы, которые ничего не знают о твоём PCH.
Если тебе нужен какойто символ из common.h (твой файл), ты его должен обязательно подключить, вне зависимости от того хочешь ты использовать PCH или не хочешь. Поэтому решение подключать common.h не зависит от активации PCH и должно приниматься раньше оного. А уже когда ты его подключил, ты можешь активировать PCH на этот common.h.
Если я правильно понял, ты хочешь его подключать везде, тогда активирование PCH можно и не производить.

PS:
Вроде, можно активировать в разных проектах разные заголовки.
К примеру, для Proj1 включить использование stdafx1.h.
К примеру, для Proj2 включить использование stdafx2.h.
А подключить ты можешь и другой файл, главное чтобы он подключал нужные:
//common.h
#include "stdafx1.h"
#include "stdafx2.h"
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.