|
|
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
Написал как-то DLL. ну жила она себе и жила, пока не решил я сделать посовременней. Создал класс, получилось 2 файла. Один описания (.h), второй реализации (.cpp). Хочу теперь заюзать этот класс. Объвляю экземпляр в другом модуле RealPort.cpp, ну к примеру так: APort rrm_Port; Соответсвенно APort описан в Aport.h и реализован по функционалу с APort.cpp. Ругаеться,говорит ,что не может она найти где описан такой тип данных APort. Возникает 2 вопроса: 1) КАК подключать внешние файлы СPP. 2) КАК указать компилятору что RealPort.cpp главный ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2005, 12:26 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
Компилятор компилирует множество СPP файлов и генерит OBJ модули. Для подключения соответствующего класса из СPP файла надо #include соответствующий H файл. C самим Срр файлом ты не взаимодействуешь. Потом линкер из кучи OBJ файлов собирает EXE (или DLL), проверяя, что все функции из этой кучи реализованы в ней же или в других библиотеках. Главного файла как такового нет, просто в одном из файлов проекта должна быть реализована процедура main (или WinMain, или DllMain) ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2005, 12:53 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
Спасибо. Но у меня она не совсем DLL в страндартном понятии. Она Заточена под VFP и имеет расширение FLL, хотя Dumpbin видит ее как DLL. В исходнике, по требованиям MSDN, требований к функции точки входа нет. Создаю я проект, настраиваю опции компиляции и линковки, пишу функции,в соотвествии с требованиями структры передачи параметров из VFP в FLL. Визардом делаю класс. Ну правильно он все делает. 2 файла, описания и реализации. Только вот что интересно. Он-то реализацию не в .h делает а в .сpp c подключением описания по #include из .h - и это правильно и тут проблем нет. Есть одна проблема - как мне в моем файле с функциями заюзать то что декларировано в .h и описано в .cpp. Вот так точнее. А,то как заюзать релизацию файла класса который подлючил описание класса я где-то встречал. Уверен что можно, только как .. не помню. Клалификацию потерял долгое время программируя на VFP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2005, 14:17 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
Я уже не совсем понимаю в чем ваша проблема: подключите в файле который использует APort -- #include "APort.h" и все ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2005, 22:23 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
А при сборке DLL формируется lib-файл? Если генерится (можно заставить в опциях компилятора), то к проекту просто добавляешь этот файл + хидер (*.h). Вроде все... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 10:16 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
У меня всего 3 файла. 1) Описание класса Aport.h 2) реализация касса Aport.сpp 3) Файл где я хочу этот класс заюзать getData.cpp Если я подключу Aport.h в getData.cpp то мне придеться в нем же описывать реализацию, а она описана в Aport.сpp . Мне нужно "сказать" компилятору, что если он встретит создание экземпляра объекта описанного в Aport.сpp то там его и искать. Он не видит что класс воообще существет. В Aport.сpp ясное дело я подлючил Aport.h. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 11:42 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
Fivnew_АУ меня всего 3 файла. 1) Описание класса Aport.h 2) реализация касса Aport.сpp 3) Файл где я хочу этот класс заюзать getData.cpp Если я подключу Aport.h в getData.cpp то мне придеться в нем же описывать реализацию, а она описана в Aport.сpp . Мне нужно "сказать" компилятору, что если он встретит создание экземпляра объекта описанного в Aport.сpp то там его и искать. Он не видит что класс воообще существет. В Aport.сpp ясное дело я подлючил Aport.h. ты класс собираешься юзать внутри длл или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 15:06 |
|
||
|
а как все это объеденить
|
|||
|---|---|---|---|
|
#18+
Я повторяю, если ты включишь в getData.cpp хидер APort.h, то тебе не придется описывать в хидере реализацию класса, только заголовок с прототипами и все. Компилятору при компиляции достаточно только информации о заголовках методов. Все потом автоматически соберется на стадии линковки. ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.03.2005, 15:11 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32957777&tid=2033621]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
7ms |
get forum data: |
6ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 360ms |

| 0 / 0 |
