Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / stdafx.h в проектах Microsoft Visual C++ / 12 сообщений из 12, страница 1 из 1
18.01.2012, 02:00
    #37619156
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Приветствую!

Какие цели преследуются добавлением этого заголовочного файла? Буду весьма признателен за информацию.
...
Рейтинг: 0 / 0
18.01.2012, 02:13
    #37619161
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
ivanov-voidПриветствую!

Какие цели преследуются добавлением этого заголовочного файла? Буду весьма признателен за информацию.
Он нужен для обеспечения возможности включения предкомпиляции заголовков.
...
Рейтинг: 0 / 0
18.01.2012, 02:14
    #37619163
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Приветствую, Anatoly Moskovsky!

Большое спасибо.
...
Рейтинг: 0 / 0
18.01.2012, 03:14
    #37619179
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Anatoly MoskovskyОн нужен для обеспечения возможности включения предкомпиляции заголовков.Это не совсем так.
Stdafx.h это всего-лишь традиция поддерживающаяся в Visual Studio.
Сначала была библиотека AFX (Application Framework eXtensions) позже ее переименовали в MFC (Microsoft Foundation Classes) а заглавный заголовочный файл от AFX остался. В дальнейшем stdafx.h получил роль хранилища для стандартных заголовков и начал рекомендоваться как стартовая точка предкомпиляции заголовков. В последних VC компиляторах (в 2010 точно) stdafx даже получил собственный ключ у компилятора. Но тем не менее, если возникнет желание, для предкомпиляции можно использовать любой другой файл.
Для компиляторов не от Микрософта stdafx.h не нужен совершенно.
...
Рейтинг: 0 / 0
18.01.2012, 04:08
    #37619191
ivanov-void
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Приветствую, White Owl!

Весьма интересные подробности, благодарю!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
25.06.2014, 15:21
    #38679882
Andrey Karpov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Для новичков про StdAfx.h - http://www.viva64.com/ru/b/0265/
...
Рейтинг: 0 / 0
25.06.2014, 16:28
    #38680022
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Andrey Karpov,

Спасибо за хорошую ссылку, добавил в FAQ.
(ваше имя останется в анналах...)
...
Рейтинг: 0 / 0
25.06.2014, 21:27
    #38680325
Progers
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Andrey Karpov,

Можно поинтересоваться, а можно ли их подключать в .h файл? Ну к примеру у меня есть класс, есть заголовок и .cpp файл, я добавлю stdafx.h в .cpp, но можно ли его добавить в заголовок класса?
...
Рейтинг: 0 / 0
26.06.2014, 09:37
    #38680524
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
ProgersAndrey Karpov,

Можно поинтересоваться, а можно ли их подключать в .h файл? Ну к примеру у меня есть класс, есть заголовок и .cpp файл, я добавлю stdafx.h в .cpp, но можно ли его добавить в заголовок класса?

это достаточно сложный вопрос.

Если упростить до примитива, то ответ - НЕТ.

прекомпилированный заголовок включается первым заголовком в каждый исходный модуль проекта (*.cpp),
А в заголовки (*.h) включается не сам прекомпилированный заголовок (например, stdafx.h), а заголовки, которые он содержит (не все, а только те, от которых зависит данный модуль, чей заголовок ты создаёшь).
Ведь никакой модуль не должен зависить от самого stdafx.h, поскольку он всегда лишь место, куда складываются другие заголовки.
Поэтому никакие заголовки проекта не должны включать stdafx.h, а только возможно какие-то его части, заголовки, указанные в stdafx.h .

Объявлять что-то непосредственно в прекомпилированном заголовке не стоит. Нужно помнить, что он всегда служит только одной цели -- повычить скорость компиляции. В хорошем проекте ты должен всегда иметь возможность выключить precompiled header в настройках проекта, выбросить всё содержимое из stdafx.h -- и проект должен нормально компилироваться, хотя, возможно и медленнее.

Это всё естественно не строгие правила, это -- правила "хорошего тона", советы, как лучше организовать модули своего проекта.
...
Рейтинг: 0 / 0
26.06.2014, 21:32
    #38681281
Progers
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
MasterZiv, Спасибо за ответ.
Вчера удалил этот заголовок, и оставил его в .cpp файле.
Но .h файл продолжает(Магическим образом) видеть различные библиотеки которые не были объявлены в этом .h файле :o
;
...
Рейтинг: 0 / 0
27.06.2014, 12:07
    #38681682
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
Progers,

Ну, тут тогда надо знать, так сказать, "волнующие подробности".
Лучше это сделать в отдельном топике.
...
Рейтинг: 0 / 0
27.06.2014, 17:02
    #38682129
Progers
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
stdafx.h в проектах Microsoft Visual C++
MasterZiv, Хорошо, спасибо за разъяснения!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / stdafx.h в проектах Microsoft Visual C++ / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]