C++ 是一种静态的编译语言,模板在编译时解析等等......
但是是否有可能在运行时创建一个函数,该函数未在源代码中描述,并且在编译期间未转换为机器语言,以便用户可以向其抛出源代码中未预期的数据?
我知道这不可能以直接的方式发生,但肯定是可能的,有很多编程语言没有编译并动态创建用 C 或 C++ 实现的那种东西。
也许如果创建所有原始类型的工厂,以及合适的数据结构将它们组织成更复杂的对象(例如用户类型和函数),这是可以实现的吗?
欢迎提供有关该主题的任何信息以及在线材料的指示。谢谢!
编辑:我知道这是可能的,这更像是我对实现细节感兴趣:)
Yes, 当然,无需任何工具其他答案中提到过,但是只需使用 C++ 编译器.
只需在您的 C++ 程序中执行以下步骤(在 Linux 上,但在其他操作系统上必须类似)
- 使用以下命令将 C++ 程序写入文件(例如 /tmp/prog.cc)
ofstream
- 通过编译程序
system("c++ /tmp/prog.cc -o /tmp/prog.so -shared -fPIC");
- 动态加载程序,例如使用
dlopen()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)