如果我有两个提供相同名称功能的库,我该怎么办?
3 回答
互换的青春
TA贡献1797条经验 获得超6个赞
可以使用objcopy --redefine-sym old=new file(参见man objcopy)重命名目标文件中的符号。
然后只需使用新名称调用函数并链接到新的目标文件。
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
在Windows下,您可以使用LoadLibrary()将其中一个库加载到内存中,然后使用GetProcAddress()获取需要调用的每个函数的地址,并通过函数指针调用函数。
例如
HMODULE lib = LoadLibrary("foo.dll");
void *p = GetProcAddress(lib, "bar");
// cast p to the approriate function pointer type (fp) and call it
(*fp)(arg1, arg2...);
FreeLibrary(lib);
将获取foo.dll中名为bar的函数的地址并调用它。
我知道Unix系统支持类似的功能,但我想不出他们的名字。
- 3 回答
- 0 关注
- 1298 浏览
添加回答
举报
0/150
提交
取消