错误:无效值没有被忽略,因为它应该是

发布于 2024-12-26 11:51:36 字数 333 浏览 2 评论 0原文

我正在尝试从动态库中获取函数符号,然后我需要使用新函数指针将我的函数替换为库函数。代码将用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只为一人 2025-01-02 11:51:36

约阿希姆的评论是正确的。第一个问题实际上是你的演员阵容。正确的演员阵容是
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 of real_mal.

Once you've fixed that, you can just write return real_mal(size);.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文