Как я могу наложить void*
на int ( *() ) (int,...)
?
void*
исходит от dlsym
. Этот код не компилируется:
typedef int ( *PSYS () ) (int,...);
PSYS getf = (PSYS) dlsym(lib, "function" );
PSYS - это тип функции, а не указатель на функцию. Вы хотите
typedef int ( *PSYS () ) (int,...);
PSYS* getf = (PSYS*) dlsym(lib, "function" );
Если символ является указателем на функцию, ваш typedef может быть неправильным. Должно быть:
typedef int (*PSYS)(int, ...);
void *
в другой тип?void*
- это то, что возвращаетdlsym
.