Указатель на конструктор/деструктор класса (Динамическая линковка библиотеки, внутри к-рой реализация класса)

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

Аватара пользователя
drag0n
Сообщения: 156
Статус: Дракон-линуксоид
ОС: Slackware Linux

Указатель на конструктор/деструктор класса

Сообщение drag0n »

Есть динамически загружаемая во время выполнения библиотека liba.so, в которой реализован класс MyClass с самописными деструктором и конструктором. Указатели на методы (кроме конструкторов и деструкторов) класса получаем при помощи dlsym. При линковке вылезают ошибки вида:

Код: Выделить всё

use_dyn_data.cpp:(.text+0x72): undefined reference to `MyClass::MyClass()'
use_dyn_data.cpp:(.text+0x72): undefined reference to `MyClass::~MyClass()'

Как я понимаю, линковщик ругается на отсутствие определений деструктора/конструктора для данного класса.
Вопрос. С указателями на методы класса разобрался, но деструктор ведь нельзя вызывать напрямую для объекта, пусть даже и через указатель! Как объяснить компилятору, что вместо конструктора и деструктора для объекта, нужно использовать указатели на них, получаемые через dlsym?

P.S. Я.П. С++. Компилятор gcc. Исходник программы, использующей библиотеку liba.so - use_dyn_data.cpp. Объявление класса MyClass находится в заголовочном файле, который подключен к use_dyn_data.cpp.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: Указатель на конструктор/деструктор класса

Сообщение Uncle_Theodore »

Читать тут
http://tldp.org/HOWTO/C++-dlopen/
А не велосипед изобретать.
Спасибо сказали:
Аватара пользователя
drag0n
Сообщения: 156
Статус: Дракон-линуксоид
ОС: Slackware Linux

Re: Указатель на конструктор/деструктор класса

Сообщение drag0n »

Большое Вам Спасибо! Все вопросы решены.
После каталога /etc понимаешь, что реестр - место, откуда нормальными не возвращаются.
Спасибо сказали: