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