В общем такая трабла. Написал хедер, где функции объявлены по виду:
void ( APIENTRY *zgl_Init )( byte FSAA, byte StencilBits );
Библиотека загружается обычным способом через dlopen, и дальше идет получение адресов на функции. Получаю следующим образом:
zgl_Init = dlsym( zglLib, "zgl_Init" );
В сишном компиляторе все собирается и проблем не возникает. Стоит скомпилировать с помощью g++, так сразу вываливается ошибка
ошибка: некорректное преобразование из ‘void*’ в ‘void (*)(byte, byte)‘
Для быдло-компилятора от MS(из-за коего пришлось делать дин-загрузку) решение сводилось к заключению всего хедера в extern "C" {...}. Тут же сей номер не прокатывает... Также почему-то были матюги в сторону области видимости для функций dlopen/dlsym, но проблема решилась подключением dlfcn.h. Осталось вот только трабла выше... у кого-нить есть какие-либо соображения по этому поводу?