问题如上。例如,我有一个自定义的 DLL/二进制/可执行文件,我想获取一个指针数组,指向该文件中存储的所有函数。
我考虑过 (1) 虚拟/纯虚拟函数和 (2) 将函数放置在特定地址下,但我不确定第一个(我想使用 malloc
和原始数据加载),并且我无法使第二个解决方案易于潜在的修改者使用。
如何在 C/C++ 中执行此操作,这可能吗?
提前致谢!
最佳答案
嗯,您无法获取文件中的“所有”函数,因为这通常定义不明确。除此之外,你会用__new_behind_the_scenes(__some_type_you_dont_understand&)
做什么?
您当然可以自由导出void(*ptrs[23])(void*)
,并且填充该数组不会太困难。困难的是使用这样的 API 做一些有用的事情。对于 retrofit 者来说这将是 hell 。他们是否需要记住调用 ptrs[16](&Widget)
默认初始化小部件并调用 ptrs[17](&Widget)
再次销毁它?
关于c++ - C/C++ : getting pointer to function without function name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31512102/