我曾经dlopen
加载一个对象并dlsym
获取一个指向共享对象函数的函数指针。一切正常。我已经测试了它调用然后共享函数(现在)只打印并且它在调用它的主程序中可以正常打印。现在我想将两个参数传递给这个函数。Anint
和 a char *
. 谁能帮我理解如何将参数传递给共享函数?我在网上搜索过,但我不明白它是如何工作的。
问问题
1114 次
1 回答
9
加载函数:
int (*func)(int x, char *y) = dlsym(dl_handle, "your_function");
您很可能会决定需要从dlsym()
; 它是动态加载库的丑陋之一。
调用它:
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.
于 2012-11-21T22:59:41.973 回答