Использование типов из shared library (dlopen)

Модератор: Модераторы разделов

Аватара пользователя
Ardzhan
Сообщения: 57
ОС: Debian + WinXP на виртуалке

Использование типов из shared library

Сообщение Ardzhan »

Возник следующий вопрос: Могу ли я использовать в своей программе типы, определенные в shared library загружаемой динамически через dlopen. Если да, то хотелось бы пример, в инете попадаются только примеры вызова функций из библиотек.
Спасибо сказали:
ToniX
Сообщения: 11

Re: Использование типов из shared library

Сообщение ToniX »

Ardzhan писал(а):
17.07.2006 06:14
Возник следующий вопрос: Могу ли я использовать в своей программе типы, определенные в shared library загружаемой динамически через dlopen. Если да, то хотелось бы пример, в инете попадаются только примеры вызова функций из библиотек.


Нельзя. С помощью dlopen - библиотека отображается на адресное пространство твоего процесса. dlsym - возвращает по имени функции указатель на код, соответствующий адресу искомой функции из библиотеки. Этот указатель потом и используешь в качестве указателя на функцию. Но сами типы (в отличие от переменных), это сущности этапа компиляции. Во время исполнения программы и в скомпилированном коде их не существует. В языках C/C++ - статическая система типов. Нельзя динамически работать с типами: создавать, уничтожать, изменять... Нет переменных типа "тип". Поэтому для работы с типами библиотеки необходим соответствующий хедер с соответствующими определениями (да и прототипы функций не плохо было бы не самому помнить, а из этих же хедеров и брать).
Спасибо сказали:
Аватара пользователя
Ardzhan
Сообщения: 57
ОС: Debian + WinXP на виртуалке

Re: Использование типов из shared library

Сообщение Ardzhan »

вопросов больше не имею, спасибо
Спасибо сказали: