我如何调用外部函数?

时间:2011-08-29 00:45:40

标签: c++ dlopen

我有代码,我正在尝试编写,我有一个void函数,信息。

void info(char *,char *);

这个,我试图从我的main函数调用一个单独的文件。我想用dlopen打开一个so文件。我如何调用该函数:info。从我的其他文件?

我正在尝试使用

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

我的信息功能出现了未定义的引用错误。

1 个答案:

答案 0 :(得分:1)

通常的道路是这样的:

/* 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/