错误:无效值没有被忽略,因为它应该是
我正在尝试从动态库中获取函数符号,然后我需要使用新函数指针将我的函数替换为库函数。代码将用 c++ 文件编写。
我使用了以下步骤,
{
void *temp = dlsym(<FLAGS>,<FUNC_NAME>);
*reinterpret_cast<void**>(&real_mal) = temp;
void *p = NULL;
p = real_mal(size);
return p;
}
但在编译时我收到此“错误:无效值不应被忽略,因为它应该是”错误
如何解决上述情况?
谢谢
I am trying to get function symbol from a dynamic library and then I need to replace my function with the library funciton using the new function pointer.The code is to be written in c++ file.
I used following steps,
{
void *temp = dlsym(<FLAGS>,<FUNC_NAME>);
*reinterpret_cast<void**>(&real_mal) = temp;
void *p = NULL;
p = real_mal(size);
return p;
}
But at compile time I am getting this "error: void value not ignored as it ought to be " error
How can I resolve above situation ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
约阿希姆的评论是正确的。第一个问题实际上是你的演员阵容。正确的演员阵容是
real_mal = reinterpret_cast(dlsym(,));
。您当前的转换隐藏了real_mal
的错误声明。解决这个问题后,您只需编写
return real_mal(size);
即可。Joachim's comment is right. The first problem is actually your cast. The proper cast is
real_mal = reinterpret_cast<void*(size_t)>(dlsym(<FLAGS>,<FUNC_NAME>));
. Your current cast hides the incorrect declaration ofreal_mal
.Once you've fixed that, you can just write
return real_mal(size);
.