On-line: MIKHAIL, Alex_Cher, гостей 2. Всего: 4 [подробнее..]
АвторСообщение





Пост N: 106
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 04.08.18 00:00. Заголовок: Как избавиться от harbour.dll в C/C++ библиотеке?


Здравствуйте.
Я написал пример на Harbour, который передаёт массив (PHB_ITEM) во внешнюю DLL.
Но для того, чтобы пройтись по его элементам, в моей DLL необходимо импортировать функции наподобии hb_itemNew, hb_arrayLen, hb_arrayGet, hb_itemRelease.
Если я подключаю harbour-32.lib, то моя DLL отказывается загружаться без harbour-32.dll который весит больше моего примера на Harbour.

Как можно заставить мою DLL подгружать методы из скомпилированного EXE примера вместо harbour-32.dll?
Или единственный способ это вручную импортировать все указатели на используемые функции ?



Исходники:

build.bat - Скрытый текст


Demo_lib.prg - Скрытый текст


Demo.prg - Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 2 [только новые]


Администратор




Пост N: 3787
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 04.08.18 18:51. Заголовок: Избавиться то можно,..


Избавиться то можно, но результат будет не очень. Тогда надо не импортировать указанные функции, а включить их в состав своей dll. Но эти функции потянут за собой harbour vm, так что в результате размер своей dll сильно вырастет. Конечно, не до размера harbour.dll, но все же существенно.
Для этого пример надо собирать не с harbour-32.lib, а с библиотеками hbcommon, hbmacro, hbrtl, hbvm
Еще конечно можно самостоятельно собрать вместо harbour-32.dll библиотеку, содержащую harbour vm без функций rtl и других ненужных модулей, но это будет уже посложнее.
Размер этой dll тоже будет приличный.

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост N: 1468
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 04.08.18 21:16. Заголовок: Оффтоп: вот честно -..


Оффтоп: вот честно - не понимаю, какое имеет значение размер файлов в современных условиях. Вы ж не на Win98 это всё запускаете, а?

Спасибо: 1 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 144
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет