cha*_*m15 1 c modularity module static-linking
我有一个接口,我希望能够静态链接模块.例如,我希望能够调用名为FOO的所有函数(虽然在单独的文件中)或匹配某个原型,最终调用文件中的函数而不在其他文件中使用标题.不要说这是不可能的,因为我发现了一个可以做到的黑客,但我想要一个非黑客攻击的方法.(黑客是使用nm来获取函数及其原型然后我可以动态调用函数).此外,我知道您可以使用动态链接执行此操作,但是,我想静态链接文件.有任何想法吗?
将所有函数的表放入每个翻译单元:
struct functions MOD1FUNCS[]={
{"FOO", foo},
{"BAR", bar},
{0, 0}
};
Run Code Online (Sandbox Code Playgroud)
然后将一个表放入列出所有这些表的主程序中:
struct functions* ALLFUNCS[]={
MOD1FUNCS,
MOD2FUNCS,
0
};
Run Code Online (Sandbox Code Playgroud)
然后,在运行时,搜索表,并查找相应的函数指针.
| 归档时间: |
|
| 查看次数: |
11278 次 |
| 最近记录: |