Russian Qt Forum

Qt => Вопросы новичков => Тема начата: MaxoBik от Май 13, 2015, 15:51



Название: QFunctionPointer приведения к уже объявленому прототипу функции
Отправлено: MaxoBik от Май 13, 2015, 15:51
Доброго времени суток, я динамически осуществляю вызов функции из одной библиотеки, использую QLibrary::resolve(const char * symbol) и у меня есть заголовочные файлы от этой библиотеки, которые я также подключаю. Вопрос: как можно привести полученный указатель на функции из QLibrary::resolve на существующий и уже объявленный прототип из заголовочного файла этой библиотеки?
Т.е. сейчас вот так:
Код:
 QLibrary lib("libhttpd");
 if(lib.load()){
       typedef int (*some_prototype)(const char*,const char*, size_t,const some_struct*, int); // <-- избавится от ненужно объявления типа и использовать готовый прототип?
       some_prototype fPointer = (some_prototype) lib.resolve("_some_prototype@20");
       if(fPointer){
         /* работа с функцией */
       }
 }


Название: Re: QFunctionPointer приведения к уже объявленому прототипу функции
Отправлено: Авварон от Май 13, 2015, 19:00
попробуйте
Код:
auto fPointer = (decltype(&headerFunc)) lib.resolve("_some_prototype@20");


Название: Re: QFunctionPointer приведения к уже объявленому прототипу функции
Отправлено: MaxoBik от Май 13, 2015, 19:07
попробуйте
Код:
auto fPointer = (decltype(&headerFunc)) lib.resolve("_some_prototype@20");
Спасибо, то что надо.


Название: Re: QFunctionPointer приведения к уже объявленому прототипу функции
Отправлено: Igors от Май 14, 2015, 09:41
Лихо