IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Dll., Bulder 6.0
сообщение
Сообщение #21


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Цитата(volvo @ 21.10.2007 23:34) *

FormTestDLL.H:

typedef IMyCls * (__declspec(dllimport) FCreate(int Size));
...
class TfrmTestDll : public TForm {
...
FCreate * Create; // <--- это что по-твоему?
...
};



Это обьявление указателя на FCreate. А FCreate это ???

Ну а FCreate это вроде функтор.

Сообщение отредактировано: Fanat -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Гость






Если честно - я не понял, что тебя смущает вообще... У тебя же в DLL создается экземпляр класса-наследника (т.е., MyCls). То, что указатель на него приводится к указателю на предка (то есть, к IMyCls *) - это тебя смущает?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Цитата(volvo @ 21.10.2007 23:55) *

Если честно - я не понял, что тебя смущает вообще... У тебя же в DLL создается экземпляр класса-наследника (т.е., MyCls). То, что указатель на него приводится к указателю на предка (то есть, к IMyCls *) - это тебя смущает?


Это не смущает. Смущало то что файл MyCls.cpp нигде не подключался...а он собственно и в обычных программах нигде не поключаеться...

Теперь всё понятно...ещё раз спасибо...

Сообщение отредактировано: Fanat -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Гость






Как это "не подключается?"

А в DBTEST.BPR что такое:
Цитата
<VERSION value="BCB.05.03"/>
<PROJECT value="&quot;F:\PROJECTS\Cut Expert\DBTEST2\bin\dbtest.dll&quot;"/>
<OBJFILES value="obj\dbm.obj obj\mycls.obj"/>

в нижней строке? smile.gif Файл подключается к проекту и участвует в сборке библиотеки...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


То есть таким образом он подключаеться. Буду знать.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Вот прочитал help на который ты давал ссылку...
откуда взяться файлу .def?..самому создать?..
И как узнать как назвал компилятор мою функцию?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Гость






Цитата
откуда взяться файлу .def?
Сбрось свою DLL-ку в каталог \BIN в папке Builder-а, и запусти
Цитата(Console)
E:\Program Files\Borland\BDS\4.0\Bin>impdef project.def project3.dll
(ну, со своим именем DLL естественно)

В результате в той же папке появляется файл project.def, который содержит, например, такое:
LIBRARY     PROJECT3.DLL

EXPORTS
@MyClass@$bctr$qi @1 ; MyClass::MyClass(int)
@MyClass@getConsumerID$qv @3 ; MyClass::getConsumerID()
@MyClass@setConsumerID$qi @2 ; MyClass::setConsumerID(int)
@std@nothrow @5 ; std::nothrow
___CPPdebugHook @4 ; ___CPPdebugHook
В первом столбце - то, что тебе нужно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Это через DOS в смысле?
Он ругаеться на то что Program Files отдельно написано...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #29


Гость






Это через Start -> Run -> CMD ...

то, что до знака ">" - это системное приглашение, тебе надо войти в папку \BIN... А там уже напечатать то, что выделено красным...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #30


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Цитата(volvo @ 22.10.2007 22:07) *

Это через Start -> Run -> CMD ...

то, что до знака ">" - это системное приглашение, тебе надо войти в папку \BIN... А там уже напечатать то, что выделено красным...


Так я так и делал...только он мне не даёт переместиться в папку Program Files...потому что написание раздельное...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #31


Гость






Возьми в кавычки... То есть,
CD "диск_на_котором_у_тебя_билдер:\Program Files\Borland\ну_и_дальше_путь_к_папке" должно дать то же результат...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #32


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Получил. Так теперь можно задать имя функции своё?

Код
LIBRARY     TWOFUNCPROJECT.DLL

EXPORTS
    @Create$qv                     @1  ; Create()


Переместить этот файл в папку где находиться проект dll и потом заново build?..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #33


Гость






Цитата
Так теперь можно задать имя функции своё?
Никак... Тебе это не нужно. Все что тебе может понадобиться - взять отсюда имя, и использовать его в программе, если тебе нужно сделать GetProcAddress...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #34


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Понянто...спасибо...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 1:34
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name