|
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
|
||||||
Подключение .h и .cpp файлов к проекту10.06.2016, 20:28. Показов 23448. Ответов 10
Метки нет (Все метки)
Я запутался в элементарном. Но всё по порядку. Создал проект. Автоматически был создан файл Unit1.cpp.
Я добавил два файла dat.h и dat.cpp, которые заполнил кодом, а в Unit1.cpp добавил: #include "dat.h" #include "dat.cpp" и создал обработчик FormCreate(). При компиляции выдаётся ошибка: [C++ Error] dat.cpp(4): E2141 Declaration syntax error но там (dat.cpp) всё правильно, может быть неверно подключил файлы? Вот файлы:
0
|
||||||
| 10.06.2016, 20:28 | |
|
Ответы с готовыми решениями:
10
Подключение файлов к проекту Подключение и удаление файлов к проекту Подключение cpp файла |
|
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
|
||||||
| 10.06.2016, 23:18 | ||||||
Сообщение было отмечено Инженер_3 как решение
Решение
подключать надо только h-файл. cpp просто должен быть добавлен в проект.
Нажми ctrl+F12. Если этот юнит есть в списке, значит только подключай h-файл. Если его там нет, то нажми shift+F11 и добавь. Добавлено через 8 минут и
1
|
||||||
|
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
|
|
| 11.06.2016, 10:04 [ТС] | |
|
Lelik-pahan, Получается, что в h-файлах только объявления (функций, структур, статических массивов, глоб.переменных) и инициализация (статических массивов и структурных переменных/массивов).
0
|
|
|
Супер-модератор
|
|||||||
| 11.06.2016, 12:17 | |||||||
Сообщение было отмечено Инженер_3 как решение
РешениеДостаточно вынести в h-файл только extern-описание:
2
|
|||||||
|
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
|
|||
| 11.06.2016, 19:51 | |||
|
Из википедии:В языках программирования Си и C++ заголовочные файлы — основной способ подключить к программе типы данных, структуры, прототипы функций, перечислимые типы и макросы, используемые в другом модуле. По умолчанию используется расширение .h; иногда для заголовочных файлов языка C++ используют расширение .hpp. (конец цитаты, дальше уже не википедия) А вот глобальные переменные (в т.ч. массивы, экземпляры классов и структур и т.д.) в них лучше не объявлять (каюсь, в предыдущем посте дал плохой совет ). Если объявить в h-файле переменную x и затем подключить этот h-файл в двух cpp, то для каждого cpp будет создан свой x, и значения в них никак не будут связаны.
0
|
|||
|
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
|
||||||
| 13.06.2016, 17:30 [ТС] | ||||||
|
Вот(ниже) коды моих функций. Инициализацию структуры из dat.cpp(там уже ничего нет) перенёс в dat.h
Всё работает нормально, но выскакивают два предупреждения: [C++ Warning] dat.h(16): W8058 Cannot create header: initialized data in header [Linker Warning] Public symbol '_stud' defined in both module C:\...\UNIT1.OBJ and C:\...\DAT.OBJ Может я неправильно создавал dat.h ? Я делал так: "File" -> "New" -> "Other" -> окошко "New Items", выбрал "Header File" и жму "Ok". Создаётся Unit2.h, который переименовываю в dat.h при сохранении проекта в диалоговом окне.
0
|
||||||
|
3 / 3 / 0
Регистрация: 10.06.2016
Сообщений: 420
|
|
| 13.06.2016, 21:12 [ТС] | |
|
volvo, до меня с трудом дошло, что можно инициализировать уже объявленную переменную.
Но всё работает, спасибо.
0
|
|
|
16 / 16 / 10
Регистрация: 20.11.2015
Сообщений: 305
|
|||||||||||
| 23.04.2017, 18:00 | |||||||||||
|
У меня похожий вопрос, только не ругайте сильно, я новичок
Создал класс в отдельном файле (кстати, правильно создавать класс в .h или .cpp?)
п.с. в MVS это получилось, а в Embarcadero Builder-е почему-то нет
0
|
|||||||||||
|
1709 / 905 / 207
Регистрация: 25.11.2009
Сообщений: 1,850
|
||||||
| 23.04.2017, 19:30 | ||||||
|
Tlya, класс называется SUCHNOST. Откуда взялся тип G_class ?
0
|
||||||
|
16 / 16 / 10
Регистрация: 20.11.2015
Сообщений: 305
|
|
| 23.04.2017, 19:37 | |
|
Lelik-pahan, Как стыдно то за свою невнимательность...)
0
|
|
| 23.04.2017, 19:37 | |
|
Помогаю со студенческими работами здесь
11
Подключение к проекту своей библиотеки Подключение к проекту x64 библиотеки Подключение библиотеки ffmpeg к проекту Подключение к проекту Skype4com.dll Один *.h и несколько *.cpp файлов - Linker Warning Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|