23,118
社区成员
发帖
与我相关
我的任务
分享
#include "stdio.h"
#include "stdlib.h"
#include "dlfcn.h"
int main(void)
{
void *handle;
int (*fcn)(int x, int y);
const char *errmsg;
/* open the library */
handle = dlopen("libsthc.so", RTLD_NOW);
if(handle == NULL)
{
fprintf(stderr, "Failed to load libsthc.so: %s\n", dlerror());
return 1;
}
dlerror();
*(void **)(&fcn) = dlsym(handle, "add"); /
//fcn = dlsym(handle, "add"); / t ok in c++
if((errmsg = dlerror()) != NULL)
{
printf("%s\n", errmsg);
return 1;
}
printf("%d\n", fcn(1, 5));
dlclose(handle);
return 0;
}