我有API将自定义C dll加载为插件。
我想要的是创建一些代理dll:
API非常复杂,因此手动包装所有内容会有很多工作 - 有什么能自动化的吗? (任何脚本语言都应该有效,例如lua,tcl,perl)。
基本上我需要像tolua这样的东西,但它只允许调用回调。更有趣的是生成lua-stubs,它将从核心应用程序(通过代理插件?)自动调用。 (并且应该基于插件C API生成这些存根)。
有人知道可以使用哪种工具吗?
答案 0 :(得分:1)
执行此操作的“标准”方法是使用某种接口定义语言编写互操作函数,并为该语言编写解析器以吐出C / lua / etc。您想要的代码(例如http://msdn.microsoft.com/en-us/library/aa367091%28v=vs.85%29.aspx)。你听说过swig吗? (http://www.swig.org/),这可能会有所帮助。
我们内部使用的方法是跳过IDL步骤,直接用我们想要导出的内容标记C代码。例如 AUTO_PARSE JSON_RPC; void foo(char * name,int age) { // ... }
在预处理步骤中,我们扫描源文件中的AUTO_PARSE标记,并吐出我们编译的特殊.c文件,例如json rpc。
希望这有帮助! 亚伦