使用一些脚本语言编写C插件

时间:2010-11-24 09:29:48

标签: c plugins proxy

我有API将自定义C dll加载为插件。

我想要的是创建一些代理dll:

  • 从应用核心转移呼叫 一些剧本。
  • 从该脚本转移回调 回到应用程序核心。

API非常复杂,因此手动包装所有内容会有很多工作 - 有什么能自动化的吗? (任何脚本语言都应该有效,例如lua,tcl,perl)。

基本上我需要像tolua这样的东西,但它只允许调用回调。更有趣的是生成lua-stubs,它将从核心应用程序(通过代理插件?)自动调用。 (并且应该基于插件C API生成这些存根)。

有人知道可以使用哪种工具吗?

1 个答案:

答案 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。

希望这有帮助! 亚伦