Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание своей библиотеки функций в .h и .cpp 
:(
    Опции темы
Vyacheslav
Дата 24.7.2003, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 9
Всего: 59



HexoGenus
При правильном оформлени h-файла его спокойно можно цеплять к всем формам проекта. Спорить с этим бесполезно. Открой h-файл любой формы и увидишь обязательно #include <vcl.h>
RAN
Цитата

Нельзя в нём функции реализовывать и переменные определять.

Небольшая поправочка: в общем случае ты прав, но в частности... не совсем. smile.gifЧто касается переменных: расширения С++Builder (а на именно его использует HexoGenus) позволяют объявлять и определять переменные в h-файлах
Код

//объявляем и определяем переменную
__declspec(selectany) int gX = 10;
//объявляем и определяем котстанту
extern const __declspec(selectany) AnsiString cStr = "abcd";


Что же касается функций, то inline-функциям место как раз в h-файлах




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
HexoGenus
Дата 25.7.2003, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Хмммм.... сложно вести обсуждение когда приходится каждый раз повторять одно и тоже в полном и неизменном виде... уточню свою фразу:

Нельзя подключить *.cpp файл при помощи команды include к нескольким формам сразу... и как вы его не оформите это верно для билдера на 100%

А для одной формы работает вполне...
И проблему я поднял как раз подключения cpp файлов а не h

inline и extern функции меня в данном случае не интересуют...

Самое красивое из того что было предложено это lib файлы ...

И пока что я пришел к выводу что фирма борланд нас прокатила...
потому что раньше в borland c++ для dos я через include прекрасно мог подключить свои cpp файлы а теперь немогу...
Подключение cpp файлов через менеджер проекта это извращение sad.gif
а другого способа нет...
К тому же в визуале как нам уже сказали компилятор сам ищет cpp файлы по указанным в опциях проекта папкам... кто мешал сделать то же самое фирме borland???

Кстати я так понимаю Борланд взамен предлагает создание своих невизуальных компонентов (что то никто этот вариант не предложил)
но настолько переходить от клавиатуры к мышке мне что то неохота...

Это сообщение отредактировал(а) HexoGenus - 25.7.2003, 19:17
--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
RAN
Дата 25.7.2003, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



HexoGenus, прежде чем такое писать (я про предыдущий топик), разберись хорошенько во всём и прочти всё, что тебе тут писали, а не путай людей (особенно новичков).
Во-первых, в языке ничего не изменилось. И cpp никогда нельзя было подключать несколько раз, их вообще не принято подключать. А тебе предлагалось подключить их один раз в одном месте. Лучше их подключать в главном файле приложения, где Run метод вызывается (если ты о таком файле слышал).
Во-вторых, пользоваться менеджером - это не извращение. Не утверждай то, что является всего-лишь твоим мнением. Я, например, VCL в C++ не люблю использовать, это для Delphi, но никогда не позволял себе говорить, что использование VCL - изврат.
В-третьих, VC ничего сам не ишет (сам проверил), и выше я об этом писал, просто ты сам невнимательно читаешь.

Цитата
И пока что я пришел к выводу что фирма борланд нас прокатила...

Если Borland и кидала когда-то (например, прикратила развитие OWL), то в данном контексте такое заявление не обосновано.

PM MAIL ICQ   Вверх
HexoGenus
Дата 27.7.2003, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Экс. модератор
Сообщений: 110
Регистрация: 28.8.2002
Где: Ростов-на-Дону

Репутация: нет
Всего: нет



Цитата
Лучше их подключать в главном файле приложения, где Run

Хмммм ... не только слышал но даже и использую при написании приложений которые нужно скрыть от пользователя...

Собрался уж было возмущаться по этому поводу, но обычно перед тем как утверждать нужно попробовать...

Попробовал и заработало!

Оказывается если к главному модулю подключить при помощи include *.h файл то это нисколько не повлияет на видимость функций описанных в этом h файле на других формах (даже если подключить соответствующий cpp файл через менеджер проекта) а вот если подключить к главному модулю cpp файл а потом на нужных формах подключать h файл с описанием функций то все работает...

Так что теперь можно поступать так:
создаем свой каталог для *.cpp файлов (к примеру этот же каталог у нас будет содержать *.h файлы)
Подключаем этот каталог к билдеру в опциях в строке
Options->Project->Directories...->Include path
дописываем: ;$(BCB)\include\my
(не забыть поставить птичку в Default)

создаем там главный файл включающий список всех своих *.cpp файлов

MyFunction.cpp

#include "MyMath.cpp";
#include "MyGraph.cpp";
#include "MyMessage.cpp";

потом подключаем этот файл к главному модулю проекта

Project1.cpp
#include "MyFunction.cpp";

После этого на любой форме мы можем подключить свой *.h файл

Unit1.cpp
#include "MyMath.h";

И все работает!

ОГРОМНОЕ ВСЕМ ВАМ СПАСИБО !!!

PS И все равно пользоваться менеджером для подключения не нескольких, а большого количества файлов к каждому своему проекту это извращение tounge.gif

--------------------
Когда невозможно уже работать напряженнее, начни работать умнее.
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 28.7.2003, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Народ, а никто не пробовал
Код
#pragma once
?

Говорят, помогает smile.gif


--------------------
user posted image
PM MAIL WWW   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.