powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / а как все это объеденить
8 сообщений из 8, страница 1 из 1
а как все это объеденить
    #32957071
Fivnew_А
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал как-то DLL. ну жила она себе и жила, пока не решил я сделать посовременней. Создал класс, получилось 2 файла. Один описания (.h), второй реализации (.cpp). Хочу теперь заюзать этот класс.
Объвляю экземпляр в другом модуле RealPort.cpp, ну к примеру так:
APort rrm_Port;
Соответсвенно APort описан в Aport.h и реализован по функционалу с APort.cpp. Ругаеться,говорит ,что не может она найти где описан такой тип данных APort. Возникает 2 вопроса:
1) КАК подключать внешние файлы СPP.
2) КАК указать компилятору что RealPort.cpp главный ?
...
Рейтинг: 0 / 0
а как все это объеденить
    #32957588
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Компилятор компилирует множество СPP файлов и генерит OBJ модули.
Для подключения соответствующего класса из СPP файла надо #include соответствующий H файл. C самим Срр файлом ты не взаимодействуешь.
Потом линкер из кучи OBJ файлов собирает EXE (или DLL), проверяя, что все функции из этой кучи реализованы в ней же или в других библиотеках.
Главного файла как такового нет, просто в одном из файлов проекта должна быть реализована процедура main (или WinMain, или DllMain)
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
а как все это объеденить
    #32957638
Fivnew_А
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Но у меня она не совсем DLL в страндартном понятии. Она Заточена под VFP и имеет расширение FLL, хотя Dumpbin видит ее как DLL.
В исходнике, по требованиям MSDN, требований к функции точки входа нет.
Создаю я проект, настраиваю опции компиляции и линковки, пишу функции,в соотвествии с требованиями структры передачи параметров из VFP в FLL. Визардом делаю класс. Ну правильно он все делает. 2 файла, описания и реализации. Только вот что интересно. Он-то реализацию не в .h делает а в .сpp c подключением описания по #include из .h - и это правильно и тут проблем нет. Есть одна проблема - как мне в моем файле с функциями заюзать то что декларировано в .h и описано в .cpp. Вот так точнее. А,то как заюзать релизацию файла класса который подлючил описание класса я где-то встречал. Уверен что можно, только как .. не помню. Клалификацию потерял долгое время программируя на VFP.
...
Рейтинг: 0 / 0
а как все это объеденить
    #32957777
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я уже не совсем понимаю в чем ваша проблема: подключите в файле который использует APort -- #include "APort.h" и все
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
а как все это объеденить
    #32958047
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А при сборке DLL формируется lib-файл?
Если генерится (можно заставить в опциях компилятора), то к проекту просто добавляешь этот файл + хидер (*.h). Вроде все...
...
Рейтинг: 0 / 0
а как все это объеденить
    #32958309
Fivnew_А
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня всего 3 файла.
1) Описание класса Aport.h
2) реализация касса Aport.сpp
3) Файл где я хочу этот класс заюзать getData.cpp

Если я подключу Aport.h в getData.cpp то мне придеться в нем же описывать реализацию, а она описана в Aport.сpp . Мне нужно "сказать" компилятору, что если он встретит создание экземпляра объекта описанного в Aport.сpp то там его и искать. Он не видит что класс воообще существет. В Aport.сpp ясное дело я подлючил Aport.h.
...
Рейтинг: 0 / 0
а как все это объеденить
    #32958975
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Fivnew_АУ меня всего 3 файла.
1) Описание класса Aport.h
2) реализация касса Aport.сpp
3) Файл где я хочу этот класс заюзать getData.cpp

Если я подключу Aport.h в getData.cpp то мне придеться в нем же описывать реализацию, а она описана в Aport.сpp . Мне нужно "сказать" компилятору, что если он встретит создание экземпляра объекта описанного в Aport.сpp то там его и искать. Он не видит что класс воообще существет. В Aport.сpp ясное дело я подлючил Aport.h.
ты класс собираешься юзать внутри длл или нет?
...
Рейтинг: 0 / 0
а как все это объеденить
    #32958994
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я повторяю, если ты включишь в getData.cpp хидер APort.h, то тебе не придется описывать в хидере реализацию класса, только заголовок с прототипами и все. Компилятору при компиляции достаточно только информации о заголовках методов.
Все потом автоматически соберется на стадии линковки.
________________________________________________________
Глюк - это высокоорганизованная система не поддающихся определению частиц
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / а как все это объеденить
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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