如何使用 dlsym() 调用函数,如果我不知道返回类型和参数
How to invoke a function using dlsym(), if i am unaware about return type and parameters?
我必须调用外部库中的函数,该函数的参数类型和数量以及返回类型未知。如何使用 dlsym 在 c++ 中调用该函数?
编辑:如果我将参数的返回类型和数据类型作为字符串获取,如何使用 dlsym() 调用函数。
例如:客户端将 func 名称、返回类型和参数数据类型发送到服务器。 服务器动态加载相应的 所以使用 DLOPEN()。现在如何使用 dlsym 调用 func?
提前致谢
如果您有已知数量的参数组合及其类型可以传递给相关函数,则可以根据此信息实现调用,并在运行时解析包含要传递的参数的类型和顺序的字符串,然后跳转到相应调用的实现。
如果您事先不知道要传递给相关函数的参数的可能类型和顺序,则无法调用它。
C 不进行即席编译,因此需要在编译时(即构建可执行文件时)知道每个调用的参数及其类型。
如果我不知道返回类型和参数,如何使用 dlsym() 调用函数?
那你就不能了。如果您尝试猜测这些,则通过指向不兼容函数类型的指针调用函数将导致未定义的行为。
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 我正在尝试使用 c++ 创建一个货币转换程序,我不知道如何继续
- 我不知道这条线是做什么的
- 如果我不知道每个列表中有多少个数字,我如何将给定数量的数字列表作为输入?
- 我不知道导致错误的原因 (C3074)
- 我不知道为什么这段代码会让核心被转储?
- 我正在尝试制作一个自平衡机器人,但编译时存在错误。我不知道如何解决它
- 我不知道如何使用代码块win32 gui
- 没有函数模板的实例与我不知道为什么的参数列表匹配
- if-else 语句仅按特定顺序工作,我不知道为什么
- DirectX 11 引擎在第三次代码改进后没有突然运行,我不知道为什么
- 程序输入名称和高度并显示它。我不知道如何显示列表中最高人的姓名和身高
- 函数抛出seg错误,我不知道为什么
- 我不知道为什么复制构造函数的调用在 c++ 中不稳定
- 我已经做了一个程序来使用队列链C++表显示学生姓名和身高,现在我想以我不知道如何显示的顺序显示它
- 我看过Stellarium代码,我不知道它从哪里开始
- C++ 我不知道此代码中的输出过程(父类子级)
- C++如果我不知道数组大小并且需要接收数组怎么办
- 如何使用 dlsym() 调用函数,如果我不知道返回类型和参数