| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > создание dll |
| Автор: Cashey 28.6.2006, 08:01 | ||
| Только не смейтесь Короче, хочу создать dll для юзания из программ на других языках.
Так вот этот код не компилится. Ругается на предложение exports. Я пытался писать "exports ChangeKey", "exports TRegistr.ChangeKey", "exports TRegistr". На все матерится его мать.... |
| Автор: Guedda 28.6.2006, 08:21 | ||||
Классы из ДЛЛ невозможно экспортировать, поэтому тебе прийдётся дописать к коду библы ещё на каждое событие по процедуре:
А в exports написать:
|
| Автор: Guedda 28.6.2006, 08:47 | ||
Нет. Ты меня не понял. Вот так примерно получится?
|
| Автор: Cashey 28.6.2006, 14:17 |
| Guedda, скомпилится он так скомпилился, только regsvr32 его отказывается регистрить - пишет нет точки входа |
| Автор: Guedda 28.6.2006, 15:24 |
| Скажи, а зачем тебе класс в dll вписывать? Гораздо проще и рациональней использовать bpl, и подключать её, когда надо... |
| Автор: Yanis 28.6.2006, 15:36 | ||
А с чего бы это её регистрировать какую то левую длл-ку, да которая ещё и не является COM сервером? Добавлено @ 15:40 Немогу найти эту статью в метсном факе, потому что он очень неудобный. Но про создание COM есть в drkb. |
| Автор: Cashey 29.6.2006, 07:51 | ||
Ну чего сразу левая? |
| Автор: Yanis 29.6.2006, 08:01 |
Для regsvr32 она левая |
| Автор: Cashey 29.6.2006, 08:17 | ||
| Ну можно простейший пример с "Hello word" для нелевой библиотеки, но что бы регистрировалась в regsvr32. К сожалению закачать DRKB сейчас возможности не имею Добавлено @ 08:19
читай первый пост: Но на самом деле все проще. В Дельфях есть модуль Registry. В нем много вкусного, что может облегчить работу на ФоксПро. Вот я и хочу сделать содержимое этого модуля доступным для программ, написанных не на Дельфи |
| Автор: Cashey 29.6.2006, 09:01 | ||||
Посмотрел в DRKB. Вот такой пример там нашел. Он замечательно демонстрирует как создать DLL с классом, но увы..... эта DLL так же не регистрится regsvr32
Хотя в топике и написано:
|
| Автор: Yanis 29.6.2006, 09:46 | ||
Именно этот способ тебе описал Guedda. Добавлено @ 09:46
http://yanis.front.ru/files/tmp/COM_creating.mht |
| Автор: ASGDeveloper 29.6.2006, 10:24 | ||
| Может я вопроса не понял? Не знаю, я так понял. Модуль Registry имеет очень много полезных процедур и функций, так? И хочется, чтобы приложения написанные НЕ на дельфе, получили тот же функционал? Было принято решение создать дллку в которую прописать все полезные функции указанного выше модуля? Если все так, то ИМХО ответ один: писать безклассовую дллку, с одними только процедурами и добавлять к описанию каждой stdcall; export; то есть:
|
| Автор: Cashey 29.6.2006, 10:40 | ||
| Yanis, да, но как такую библиотеку зарегистрировать??? ASGDeveloper, переписывать весь модуль довольно трудоемко. Учитывая, что в нем используются (или могут использоватся) перекрестные ссылки А можно ли создать DLL такого типа?
|
| Автор: _hunter 29.6.2006, 11:05 |
| попробую я объяснить... regsvr32 регистрирует ТОЛЬКО COM-сервера. простая библиотека с классом -- НЕ COM-сервер. P.S. никто не мешает иметь в одном сервере несколько модулей |
| Автор: ASGDeveloper 29.6.2006, 11:25 | ||
Можно, ИМХО лучше так: заведи переменную типа TRegistry и:
Аналогично дописываются остальные функции. |
| Автор: Yanis 29.6.2006, 11:29 | ||
С помощью regsvr32, для COM сервера. Статью то читал на которую я ссылку дал? Как мне ненравится повторяться.... Guedda тебе именно такой пример и привёл. Или нет?
Хватит писать одно и тоже |
| Автор: Cashey 29.6.2006, 11:53 |
нет, не читал. адрес почему-то занесен админами в блок-лист. я создал DLL с, приведенным мною, кодом из DRKB (один в один). Но regsvr32 ее регистрировать отказывается - нет точки входа. |
| Автор: Romikgy 29.6.2006, 11:59 | ||||
Cashey,
ответ на
На читай |
| Автор: _hunter 29.6.2006, 12:00 |
| этот код не является COM-сервером |
| Автор: Yanis 29.6.2006, 13:14 |
| Romikgy Я уже давал ссылку на эту статью. |
| Автор: Rrader 29.6.2006, 13:38 |
| File - New - Other - ActiveX - ActiveX Пример в аттаче |
| Автор: Cashey 29.6.2006, 14:58 |
Да, это то что надо Всем спасибо |
| Автор: Yanis 29.6.2006, 15:16 |
Ты похоже мою ссылку тоже не смотрел. |
| Автор: Romikgy 29.6.2006, 16:53 |
Где ссылка то это архив Yanis, еще вопросы есть? это и есть твоя ссылка только в архиве |