将参数传递给共享函数 - C.

Spy*_*osR 1 c arguments dlsym

我曾经用来dlopen加载一个对象并dlsym获得一个指向共享对象函数的函数指针.一切正常.我测试了它然后调用共享功能(现在)只打印它工作 - 在主程序调用它打印好.现在我想向这个函数传递两个参数.An int和a char *.任何人都可以帮助我理解如何将参数传递给共享函数?我在网上搜索过但我无法理解它是如何工作的.

Jon*_*ler 9

加载功能:

int (*func)(int x, char *y) = dlsym(dl_handle, "your_function");
Run Code Online (Sandbox Code Playgroud)

你很可能决定在回归时需要一个演员dlsym(); 它是动态加载库的uglinesses之一.

调用它:

int i = 37;
char buffer[64];
int result1 = (*func)(i, buffer);  // Old school — pre-C89 (but still works and is explicit)
int result2 = func(i+1, buffer);   // New school — can leave you looking for the wrong thing.
Run Code Online (Sandbox Code Playgroud)