我试图从动态库中获取函数符号,然后我需要使用新函数指针将库函数替换为库函数。代码将用c ++文件编写。
我使用了以下步骤,
{
void *temp = dlsym(<FLAGS>,<FUNC_NAME>);
*reinterpret_cast<void**>(&real_mal) = temp;
void *p = NULL;
p = real_mal(size);
return p;
}
但是在编译时我得到了这个“错误:无法忽略void值,因为它应该是”错误
我如何解决上述情况?
由于
答案 0 :(得分:1)
约阿希姆的评论是正确的。第一个问题实际上是你的演员。适当的演员是
real_mal = reinterpret_cast<void*(size_t)>(dlsym(<FLAGS>,<FUNC_NAME>));
。您当前的演员隐藏了real_mal
的错误声明。
修复后,您只需撰写return real_mal(size);
即可。