Здравствуйте, Pzz, Вы писали:
Pzz>1. Берем исходники библиотеки. Компилируем их с флагом -fPIC и линкуем с флагом -shared. Получаем в итоге shared object (динамически загружаемую "библиотеку". Pzz>2. Для линковки основной программы ее НЕ ИСПОЛЬЗУЕМ Pzz>3. Вместо этого основная программа загружает .so-ку функцией dlopen(), а потом добывает указатель на входную точку (точки) функцией dlsym(). dlsym() возвращает void*, который надо откастировать к требуемому типу Pzz>4. Получив в итоге указатель на функцию, вызываем ее Pzz>5. Когда хочется перезагрузить библиотеку, "отпускаем" старую функцией dlclose(), загружаем новую функцией dlopen(), и далее все по кругу.
Pzz>dlopen() уместно звать с флагами: Pzz>RTLD_NOW — чтобы если в ней есть unresolved symbol, это вылезло сразу, а не при попытке обратиться. Pzz>RTLD_LOCAL — чтобы не засорять пространство имен
Вот по этому я радуюсь, что не стал развиваться в Linux направлении....