![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
в этом случае можно их всех собрать в один *.lib и подключать только его не знаю, как в Builder, а в VC я делаю проект library типа Win32 Static Library, в него включаю кучу файлов *.cpp, компилирую его один раз, а полученный *.lib файл добавляю в те проекты, где он нужен -------------------- qqq |
|||
|
||||
| HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Хммм... только перед тем как включать нужно зайти 100 раз в менеджер проектов и добавить 100 cpp файлов и так в каждом новом проекте... это что я программист или оператор машинного доения сейчас пытаюсь заставить билдер воспринимать команду USEUNIT но он почему-то не дает использовать ее в подключаемом файле (кажется она не признает вложений) можно конечно держать список из USEUNIT ("name1.cpp"); USEUNIT ("name2.cpp"); USEUNIT ("name3.cpp"); в отдельном файле а потом копировать в каждый проект, но это все равно не красиво есть вариант copy *.cpp myfunct.cpp и потом подключать этот файл... но тоже коряво... не подумайте что я такой уж привиреда, я очень благодарен за то что вы откликнулись, остальные вообще молчат, или им тема кажется слишком простой, или подводные камни оказались даже крепче чем я думал... неужели тут большинство пишет каждую программу с нуля и совсем не пробует создавать свои универсальные классы и функции? --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
| maxim1000 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 17 Всего: 110 |
-------------------- qqq |
||||
|
|||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Долго еще будете велосипед изобретать?
|
|||
|
||||
| HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
maxim1000 Извини
DENNN не знаю почему это для тебя является велосипедом, может ты lib файлы каждый день используешь а я про них что то слышал но даже не знал зачем нужны, теперь понял и буду разбираться 1. Знания в голове 2. Сборники документации 3. Свои библиотеки функций Некоторые эти библиотеки функций хранят в виде исходников созданных программ, другие ведут что-то вроде электронного справочника, но ведь это неправильно... Зачем десятки раз перебирать одно и то же, искать, копировать, подключать cpp файлы по одному заботясь что бы не пропустить ни одного... Неужели меня так сложно понять DENNN ? Если это и велосипед, то он спрятан, а мы ходим пешком... maxim1000 еще раз спасибо! Это сообщение отредактировал(а) HexoGenus - 22.7.2003, 14:07 --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Просто в любом классическом справочнике говориться, что в заголовочном файле хранятся объявления функций , а в cpp их реализация. Это первое с чего у нас пошел спор. А детская комната я думаю не нужна
|
|||
|
||||
| HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
Вот меня как раз и стесняет то что во всех классических книжках по билдеру хорошо расписывается как при помощи #include подключать описания функций в *.h файлах но нигде не говориться как подключать *.cpp файлы которые им соответствуют. А ведь если рассмотрим любой *.h файл то в нем куча подключений через include других *.h файлов.
Получается что, при подключении через include всего одного *.h файла нужно подключить целую кучу *.cpp файлов через менеджер проекта... Так что все же надеюсь что пока я пытаюсь разобраться с lib файлами ктонибудь подскажет как грамотно подключать cpp файлы сразу большой кучей... --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Уже же все сказали. Используй библиотеки(статические или динамические). У Builder неплохой эквивалент: package. И надо понимать, что в С++ нет понятия проекта и говорить о включении cpp куда либо бесмысленно. Проект - это термин используемых сред разработки а не языка. Поэтому о включении cpp ничего и не говорится. Не так давно, чтобы собрать программу приходилось компилить каждый cpp отдельно командной строкой, а затем полученные файлы obj линковать в приложение.
Если так уж в лом, то при аккуратном оформленнии cpp попробуй использовать тот же include. Вставь в проект отдельный чистый cpp, в котором будут только include #include "file1.cpp" #include "file2.cpp" #include "file3.cpp" #include "file5.cpp" -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Я не спец по билдеру, по этому скажу про VC после подключения h-файла производиться поиск сначала среди подключенных в проект файлах *.cpp, а если там такого файла нет, то просматриваються все каталоги указаные в свойствах среды разработки как каталоги с Source-файлами. Тоже самое происходит и при включении заголовочного файла, только опция будет не "Source files", а "Include Files".
По этому, копирпуешь свои cpp файлы в отдельную директорию, заголовочные файлы в отдельную, прописываешь пути (или можешь накидать все в кучу в одну из уже прописанных стнадартных) и все у тебя будет хорошо. После этого можешь просто добавлять в файле строчку #include..... Не правдали так намного удобнее и главное вернее? А велосипед изобретать не надо P.S. Тебя не удивляло, что вставка строки вида #include stdio.h не вызывает у компилятора шок? Ты же не думаешь что все стандартные библиотеки состоят только из заголовочных файлов? |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
DENNN, нет, так не получится. В VC надо свой lib добавить в свойствах проекта, по-моему на вкладке Link перечислены kernel32.lib и т.п. Так вот в конце дописываешь свой и он добовляется в командную строку компановщика. Но мне кажется лучше lib включать в проект.
А в Buildere такого нет, там можно только подключить файл к проекту. |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Опять Builder обижают -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Я не обижаю Builder, я с ним не меньше Visual'a работаю. Это факт:
В VC можно изменять список стандартных lib файлов или вообще отключить и писать с нуля, только точка входа будет не main и не WinMain, а mainCRTStartup. Входишь в setting... проекта (Alt+F7) и там на странице Link в категории General есть EditBox "Object/Library modules" перечислены lib по-умолчанию, можешь редактировать и добавлять свои. А если там отметить Ignore all default libraries, то в проект не будут подключаться никакие lib и компанивщик не сможет найти даже mainCRTStartup, с которого начинается выполнение программы. А в Builder'e список стандартных библиотек не изменить. |
|||
|
||||
| Vyacheslav |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 9 Всего: 59 |
Мда !?
В каталоге Bin открываем Notepad'ом файл с именем default.bpr и правим
Потом создаем новый проект, транслируем и получаем
Кстати для Builder6 правим секцию
и у нас при создании при создании проекта сразу подключается и *.cpp-файл Я уж не говорю о возможности написания визардов для создания проектов. -------------------- С уважением, Вячеслав Ермолаев |
||||||
|
|||||||
| HexoGenus |
|
|||
![]() Шустрый ![]() Профиль Группа: Экс. модератор Сообщений: 110 Регистрация: 28.8.2002 Где: Ростов-на-Дону Репутация: нет Всего: нет |
DENNN уже пробовал
и на всякий случай попробовал еще раз... скопировал свои файлы почти во все папки билдера, в опциях билдера везде где только можно дописал к путям ;$(BCB)\include\my в VС может и ищутся cpp файлы, а билдер обрабатывает только те что подключены к проекту... Vyacheslav почитай внимательно то что писалось выше include будет работать только при подключении к одной форме если попробуешь использовать include на нескольких формах то этот способ не прокатит... твой способ прописать cpp файлы радует тем что это можно сделать один раз для всех вновь создаваемых проектов... опробуем, поделимся впечатлениями --------------------
Когда невозможно уже работать напряженнее, начни работать умнее. |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
Vyacheslav, если так, то значит можно. Прошу прощения за свою неосведомлённость.
HexoGenus, почитай повнимательней всё, что в этой теме писалось. По моему исчерповающее обсуждение. Тут есть масса вариантов. И насчёт #include: я не говорил, что их нельзя на разные формы лепить, я сказал, что твой h-файл не верно составлен. Нельзя в нём функции реализовывать и переменные определять. Это сообщение отредактировал(а) RAN - 23.7.2003, 22:33 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |