• 4068阅读
  • 1回复

linux下调用so动态链接库问题 [复制链接]

上一主题 下一主题
离线zhangyujin78
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-13
void *hknetsdk=dlopen("./libhcnetsdk.so",RTLD_LAZY); //加载libhcnetsdk.so
void *sanson_NET_DVR_Init=dlsym(hknetsdk,"NET_DVR_Init");

上面是我写的加载和调用.so的一段程序。
在第二句中,NET_DVR_Init函数 定义的时候 为BOOL NET_DVR_Init();
就出现了 数据类型 不一样的问题。
将代码改为:
void *hknetsdk=dlopen("./libhcnetsdk.so",RTLD_LAZY); //加载libhcnetsdk.so
BOOL *sanson_NET_DVR_Init=dlsym(hknetsdk,"NET_DVR_Init");
也无济于事, 这应该和第一句 声明为 void有关系吧?
将代码改为:
BOOL *hknetsdk=dlopen("./libhcnetsdk.so",RTLD_LAZY); //加载libhcnetsdk.so
BOOL *sanson_NET_DVR_Init=dlsym(hknetsdk,"NET_DVR_Init");
更不行的, dlopen和 dlsym的参数 都是void的。
小第只是想把 libhcnetsdk.so中的函数调用出来用用,可是里面的函数都是BOOL
有高手知道怎么处理吗?
离线zhangyujin78
只看该作者 1楼 发表于: 2009-08-13
我承认我错了 ,原来不用这么复杂,在置顶贴中有。
快速回复
限100 字节
 
上一个 下一个