Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/54: Рейтинг темы: голосов - 54, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 03.01.2010
Сообщений: 182

Вызов функции из другого h или cpp

23.11.2012, 15:00. Показов 10679. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите как правильно вызвать функцию из другого h или cpp использующего глобальные переменные из головного модуля и взаимодействуюшего с его объектами.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.11.2012, 15:00
Ответы с готовыми решениями:

Вызов функции из другого .cpp без параметров
Создал отдельный файл для функции .cpp: //--------------------------------------------------------------------------- #pragma...

Обращение к функции, из другого CPP
допустим есть один проект, и лепить все в один файл не хочется.. можно ли в разные файлы в одном проекте написать функции.. чтобы в главном...

Вызов переменных из функции в файле .cpp
Здрасти. Никак не могу понять как это сделать.. Есть файл show.h, в котором объявлены некие функции в неком классе #pragma...

7
 Аватар для Kabak
159 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 788
Записей в блоге: 1
23.11.2012, 15:25
подключить модуль в котором содержится функция к головному модулю - в проект.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.11.2012, 17:45
Цитата Сообщение от nikphil87 Посмотреть сообщение
использующего глобальные переменные из головного модуля и взаимодействуюшего с его объектами.
Там, где прописана эта функция, переобъявить переменные и объекты из других модулей со спецификатором extern.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
23.11.2012, 20:52
https://www.cyberforum.ru/post2490682.html
1
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 46
08.03.2013, 20:08
Прочитал этот... Расставлял, где мог, разнообразнейшими способами этот extern inline void в файле Unit1.cpp и в присодинённом(#pragma link "Comm") Comm.cpp, откуда вызываю функцию
Code
1
2
3
4
5
void __fastcall TThreadComm::SetDTRState(bool State)
{
  int DTR[] = {CLRDTR, SETDTR};
  EscapeComm(DTR[State]);
}
выдаёт ошибки
[C++ Error] Unit1.cpp(55): E2189 extern variable cannot be initialized
[C++ Error] Unit1.cpp(56): E2189 extern variable cannot be initialized
[C++ Error] Unit1.cpp(63): E2189 extern variable cannot be initialized
[C++ Error] Unit1.cpp(64): E2189 extern variable cannot be initialized ?
В справке написано:
The storage class extern applied to a variable means that the variable is being declared but not defined here--no storage is being allocated for it.
Therefore, you can't initialize the variable as part of the declaration.
Без значения - компилируется, как только ставишь extern inline SetDTRState(false) - такие вот ошибки? Есть ли какая-то возможность поправить ситуацию? Почему компилятор идентифицирует эту функцию как переменную?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
08.03.2013, 20:27
Эта функция - часть класса TThreadComm. Почему объявляешь ее как одиночную функцию?
Она может быть вызвана лишь из существующей инстанции класса TThreadComm, либо как static-метод класса.
Как используется этот класс?
0
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 46
08.03.2013, 21:14
Цитата Сообщение от BRcr Посмотреть сообщение
Как используется этот класс?
Не знаю, он вообще-то с ком портом работает. Там всё для работы с ком-портом, примерно такое, только редакция от 2005 года. А мне нужно только открыть-закрыть порт, DTR,RTS,TX установить\сбросить и прочитать CTS.

Добавлено через 7 минут
Подскажите пожалуйста, вот там есть что-нибудь полезное?
0
1 / 1 / 0
Регистрация: 12.07.2012
Сообщений: 46
19.03.2013, 20:28
Так кто и что подскажет?
Вот имеются файлы, на срр и заголовочный.
Эти файлы присоединены к проекту, в форме
Code
1
2
3
4
5
6
7
8
9
10
11
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "SAnTimer.h"
#include "CommPort.cpp"
#pragma package(smart_init)
#pragma resource "*.dfm"
// My timer period is 0.977ms, therefore dividend is, for most accuracy 61412, that mean 61412*0.977=60s(1 minute)
TForm1 *Form1;
timer::Timer tmr(false);    // Тут вставлен очень точный хороший таймер из файла SAnTimer.h вместо штатных и прочих.
...      // Сюда нужно как-то просто вставить поток или компорт из файла CommPort.cpp, назвав его Comm1, и всё.
Этот Comm1 был раньше из программы TMS Async, там он автоматически объявился как-то, я только имя ему дал - Comm1. По причине того, что триальная программа, постоянно напоминающее окно о триальности этого TMS Async выскакивало при запуске. Удалил и присоединил CommPort.cpp. Естественно, название Comm1 осталось и Билдер 6 выдаёт 7 ошибок по поводу
Code
1
2
3
4
5
6
7
[C++ Error] Unit1.cpp(22): E2451 Undefined symbol 'Comm1'
[C++ Error] Unit1.cpp(44): E2451 Undefined symbol 'Comm1'
[C++ Error] Unit1.cpp(78): E2451 Undefined symbol 'Comm1'
[C++ Error] Unit1.cpp(118): E2451 Undefined symbol 'Comm1'
[C++ Error] Unit1.cpp(128): E2451 Undefined symbol 'Comm1'
[C++ Error] Unit1.cpp(138): E2451 Undefined symbol 'Comm1'
[C++ Error] Unit1.cpp(166): E2451 Undefined symbol 'Comm1'
Как объявить этот компорт или поток ли, как это назвать, не знаю, чтобы его можно было Comm1 Open(), Comm1 Close(), Comm1->Enabled=true и т.д. и т.п. в программе? Или чего где прочитать конкретно по этому вопросу? Там вот был пример по поводу таймера, а там толком про ком-порт ничего и непонятно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.03.2013, 20:28
Помогаю со студенческими работами здесь

Вызов функции из cpp из заголовочного файла окна
Доброго дня всем! Поясню ситуацию: пишу на множестве языков, из виндозовских основные c# и Delphi, а вот c++ был в далёкие годы...

Вызов функции из другого файла
мне необходимо вызвать функцию из другого файла (функция заполнения бинарного файла структурой, в будущем будет еще много функций) но...

Вызов функции из другого файла
Ребят! Привет! Я новый на этом форуме. Мне стало интересно как заставить программу перейти с одного кода (после выполнения) на другой (не...

Вызов функции из другого файла.
Всем привет!) У меня такой вопрос ,допустим есть main.cpp , и есть der.cpp .В der.cpp есть функция getfr() ,так вот как мне из ...

Вызов функции из другого файла
У мемя есть файл main.cpp#include &lt;iostream&gt; using namespace std; void hi(){ cout &lt;&lt; &quot;Hello world&quot;; } void a(){ cout &lt;&lt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru