我使用dlopen
加载对象,并使用dlsym
获取指向共享对象函数的函数指针。一切正常我已经测试了它的调用,然后共享函数(目前)只打印,它在调用它的主程序中运行良好现在我想给这个函数传递两个参数。一个int
和一个char *
。有谁能帮助我理解如何将参数传递给共享函数吗?我在网上搜索过,但我不明白它是怎么工作的。
最佳答案
加载函数:
int (*func)(int x, char *y) = dlsym(dl_handle, "your_function");
您很可能会决定在
dlsym()
返回时需要一个强制转换;它是动态加载库的ugliness之一。调用它:
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.
关于c - 将参数传递给共享函数-C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13503367/