Как мне вызвать внешнюю функцию? - PullRequest
0 голосов
/ 29 августа 2011

У меня есть код, который я пытаюсь написать, у меня есть функция void, информация.

void info(char *,char *);

Это, я пытаюсь вызвать из моей основной функции в отдельном файле. Я хочу использовать dlopen, чтобы открыть файл so. Как бы я назвал функцию: информация. Из моего другого файла?

Я пытаюсь использовать

info("testing: ","Success");

Я получаю неопределенную ошибку ссылки в моей информационной функции.

1 Ответ

1 голос
/ 29 августа 2011

Обычный путь - что-то вроде этого:

/* Set up a typedef for the function pointer to make the code nicer */
tyepdef void(*Info_ptr)(char*, char*);
/* Get the function, lib must be the dlopened library.*/
Info_ptr info;
info = (Info_ptr)dlsym( lib, "info");
/* Use the function pointer */     
(*info)("testing: ", "Success");

Возьмите здесь все для разговора: http://tldp.org/HOWTO/html_single/C++-dlopen/

...