![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| t_gran |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 1 Всего: 37 |
Хочу поделиться своей проблемой и думаю найду ответ на неё.
Начнём с того, что я сторонник кросс-платформенности и в какой-то момент решил написать приложение которое может подгружать динамические библиотеки. Т.к. в основной своей массе пишу под *nix-ы естественно начал использовать libdl, а именно 4-замечательный функции описанные в заголовочнике dlfcn.h: dlopen, dlclose, dlsym, dlerror. Когда начал портировать программу в windows встала такая проблемка, что libdl просто нет. Я естественно в инет, но то ли я ссыщик токой, то ли действительно этот вопрос мало кого волнует, в общем ничего определённого я там не нашёл. Короче решил я по быстрому сам наклепать эту злощасную либу. Короче вот, что у меня получилось. Выкладываю просто ради того, что может кто нибудь мне поможет её доработать: dlfcn.h
И сам исходник dlfcn.c
Можно конечно и define-ами обойтись, но меня всётаки было бы инетерсно разобраться с этим вопросом именно с этой стороны. Может кто нибудь сталкивался с такой проблемой и сможет мне помочь? -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
||||
|
|||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
а где проблема?
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
используй cygwin - там эти функции есть
|
|||
|
||||
| t_gran |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 1 Всего: 37 |
MAKCim,
Проблема, где найти оригинал? Ну или помочь c dllerror (Я пока поставил просто заглушку). Пробовал GetLastError (), но даже при положительном раскладе, она возвращает код ошибки, а не 0L. math64,
Надо глянуть Это сообщение отредактировал(а) t_gran - 13.5.2008, 02:51 -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
||||
|
|||||
| Ken |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 31.3.2007 Репутация: 2 Всего: 4 |
Вы пытаетесь добиться кросплотформенности пытаясь реализовать часть POSIX API под win32. Только зачем? На самом деле вам нужны всего лишь: открыть библиотеку, закрыть и поиск символа. Советую думать только о задаче, т.е. завести свои функции, например: openLibrary (), closeLibrary () и findSymbol (). Кроме того зачем для вашей прикладной задачи столько деталей о флагах? В большинство случаев можно обойтись и без них. Вот и упростили задачу. Реализуйте эти функции под *nix используя libdl, под win32 LoadLibrary и т.д. Используйте только свою оболочку во всех программах.
Совет: постарайтесь изолировать ваши программы от детали конкретной платформы или среды, тогда они будут проще и их легко можно переносить. |
|||
|
||||
| t_gran |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 1 Всего: 37 |
Это просто из оригинала заголовочника с *nix-ов. Как видно из кода, естественно они там не нужны по определению, но при портировании проекта могут быть проблемы из за того, что они не определены.
Естественно. -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
||||
|
|||||
| just_geek |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 309 Регистрация: 13.12.2007 Репутация: 2 Всего: 10 |
как то вот так вообщем то Это сообщение отредактировал(а) just_geek - 13.5.2008, 15:42 |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 1 Всего: 37 |
just_geek, спасибо, обязательно попробую.
-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |