首页
社区
课程
招聘
[求助]想通过dlsym(),调用libdvm.so中的dvmDecodeIndirectRef()函数,不知该如何声明函数形变量?
2014-9-28 11:49 15429

[求助]想通过dlsym(),调用libdvm.so中的dvmDecodeIndirectRef()函数,不知该如何声明函数形变量?

2014-9-28 11:49
15429
想通过dlopen()及dlsym(),动态加载libdvm.so库,并调用其中的dvmDecodeIndirectRef()函数。
在android源代码中找到 dvmDecodeIndirectRef函数定义如下:
Object* dvmDecodeIndirectRef(Thread* self, jobject jobj);

在自己的.CPP程序中定义函数形变量:
typedef Object* PObject;
typedef PObject (*PMETH_dvmDecodeIndirectRef)(Thread* self, jobject jobj);
PMETH_dvmDecodeIndirectRef meth_dvmDecodeIndirectRef;

代码执行时情况如下:
        void *ldvm = (void*)dlopen("libdvm.so", RTLD_LAZY);            <<<<<<<ldvm 值能正常得到
        meth_dvmDecodeIndirectRef = (PMETH_dvmDecodeIndirectRef)dlsym(ldvm, "dvmDecodeIndirectRef");         <<<<<meth_dvmDecodeIndirectRef值为0

并未取得该函数指针,不明白是哪里的问题?是定义部分错了吗?
谢谢!

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (4)
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
QEver 5 2014-9-28 18:57
2
0
看dlerror()
雪    币: 168
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bunnyrene 2015-1-20 15:08
3
0
dlopen Symbol not found:  楼主解决了没?同样的问题
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jasonzhou 2015-1-20 22:13
4
0
extern "C"
函数名问题
雪    币: 216
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
potop 2015-1-26 11:55
5
0
是这样,正解!
游客
登录 | 注册 方可回帖
返回