| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > dlsym |
| Автор: alex171069 25.12.2008, 15:00 |
| Господа может быть кто знает почему функция dlsym возвращает 0x0 при вызове из .so функции ? И к томуже ругается на применение типа который везде описан . Конкретнее : я делаю library_handler = dlopen("libRSA_prot.so",RTLD_LOCAL | RTLD_LAZY); и получаю нормальный Хендл . но в последствии я пытаюсь получить ссылку на функцию из библиотеки libRSA_prot.so следующим образом typedef void (*simple_function)(void); simple_function _function; _function = dlsym(library_handler, "GetKeyPublic"); (*demo_function)() ; // пытаюсь запустить функцию на выполнение при компиляции мне выдается ошибка подобного типа main.cpp:30: ошибка: некорректное преобразование из ‘void*’ в ‘void (*)()’ Я уже не знаю на что подумать и как правильно вызвать из библиотеки функцию. Может кто ткнет где не так ? |
| Автор: MAKCim 25.12.2008, 15:43 | ||
| alex171069, либо надо комилировать С-компиляором (gcc) либо использовать reinterpret_cast<>
|