gpt4 book ai didi

c++ - 使用 dlsym 访问类符号

转载 作者:行者123 更新时间:2023-11-30 04:19:49 25 4
gpt4 key购买 nike

我想从我的共享库 (.so) 中访问一个类符号这是我需要做的正确方法吗?

MyClass* pMyClass= (MyClass*)dlsym(phandle, "MyClass");

如果这是正确的方法,那么我应该有我的 MyClass header 用于转换。我想知道是否有任何其他方法可以在不包含标题的情况下执行此操作?

谢谢

最佳答案

如您所知,dlsym 基本上返回 void * - 一个无类型指针。

那个指针是一个符号的地址——只是一个数字。如果你有

class MyClass instance;

在您的 .so 中,dlsym 将返回 &instance 的值。那里没有其他信息。对于dlsyminstance 只是一个内存区域的地址。如果你有

char instance[sizeof(MyClass)]

你会得到完全相同的值。

因此,回答您的问题 - 不,不知道其地址 dlsym 返回的符号的内容。你必须自己添加这些知识。这就是为什么您必须转换 dlsym 的结果,这就是为什么您需要包含头文件。

关于c++ - 使用 dlsym 访问类符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com