0

我在文件中有一个函数原型。有没有办法通过在 C++ 中运行时读取文件来创建函数指针?

4

3 回答 3

2

您正在正确地寻找来自Wikipedia的libffi

libffi 是一个外部函数接口库。它提供了一个 C 编程语言接口,用于在运行时而不是编译时调用本机编译的函数给定有关目标函数的信息。它还实现了相反的功能:libffi 可以生成一个指向函数的指针,该函数可以接受和解码在运行时定义的任何参数组合。

于 2013-10-30T04:30:19.577 回答
0

您可以使用系统调用(使用system标准库的函数)来调用从函数文件创建动态库的编译器。dlopen然后,您可以使用或加载库LoadLibrary,具体取决于平台。

编辑: 当然,如果你真的只有一个原型,而不是定义,这将不起作用。在那种情况下,我很抱歉我误解了你的问题。

于 2013-10-30T04:29:27.877 回答
0

不,函数原型只是对函数如何使用的陈述;它不能单独执行。

如果你有一个函数的名字并且你想把它变成一个函数指针,你可以使用dlsym(RTLD_DEFAULT, "fn"). 不过不推荐。

于 2013-10-30T04:26:47.457 回答