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