一段时间以来,我一直在寻找一种将函数动态加载到 c++ 中的方法,我想我终于弄明白了。这是计划:
- 将函数作为字符串传递给 C++(通过套接字连接、文件或其他方式)。
- 将字符串写入文件。
- 让 C++ 程序编译该文件并执行它。如果有任何错误,抓住它们并返回它。
- 让新执行的带有新函数的程序将函数的内存位置传递给当前正在运行的程序。
- 将函数的位置保存到函数指针变量中(函数将始终具有相同的返回类型和参数,因此这简化了指针的声明)。
- 使用函数指针运行新函数。
问题是在第 4 步之后,我不想让新程序继续运行,因为如果我经常这样做,许多正在运行的程序会占用线程。有什么方法可以关闭新程序,但保留存储新函数的内存位置?我不希望它在仍在使用时被覆盖或提供给其他程序。
如果你们对其他步骤也有任何建议,那也将不胜感激。可能还有其他库做类似的事情,推荐它们很好,但这是我想要研究的方法——如果不是为了完成它,那么是为了知道如何去做。
编辑:我知道动态链接库。这是我主要研究的内容,以更好地了解 C++ 中的工作原理。