0

我正在尝试从动态库中获取函数符号,然后我需要使用新函数指针将我的函数替换为库函数。代码将编写在 c++ 文件中。

我使用了以下步骤,

{
void *temp = dlsym(<FLAGS>,<FUNC_NAME>);
*reinterpret_cast<void**>(&real_mal) = temp;
void *p = NULL;
p = real_mal(size);
return p;
}

但是在编译时,我收到了这个“错误:无效值没有被忽略,因为它应该是”错误

我该如何解决上述情况?

谢谢

4

1 回答 1

1

Joachim 的评论是正确的。第一个问题实际上是你的演员。正确的演员表是 real_mal = reinterpret_cast<void*(size_t)>(dlsym(<FLAGS>,<FUNC_NAME>));。您当前的演员表隐藏了real_mal.

一旦你解决了这个问题,你就可以写return real_mal(size);.

于 2012-01-13T08:02:20.383 回答