Binding 如何制作语言绑定?
虽然我或多或少了解语言绑定是什么,但我仍在努力理解它们是如何工作的。Binding 如何制作语言绑定?,binding,Binding,虽然我或多或少了解语言绑定是什么,但我仍在努力理解它们是如何工作的。 例如,有人能解释一下如何为WinAPI创建Java绑定吗?如果搜索外部函数接口或FFI,您会找到更好的结果。FFI允许您调用用不同语言编写的函数,即外文函数。不同的语言和运行时具有截然不同的FFI,您必须单独学习每种语言和运行时。学习FFI还迫使你比平时更了解语言的内部结构及其运行时。一些FFI让您用目标语言编写代码,如Haskell(FFI代码必须用Haskell编写),另一些FFI让您用源语言编写代码,如Python(FF
例如,有人能解释一下如何为WinAPI创建Java绑定吗?如果搜索外部函数接口或FFI,您会找到更好的结果。FFI允许您调用用不同语言编写的函数,即外文函数。不同的语言和运行时具有截然不同的FFI,您必须单独学习每种语言和运行时。学习FFI还迫使你比平时更了解语言的内部结构及其运行时。一些FFI让您用目标语言编写代码,如Haskell(FFI代码必须用Haskell编写),另一些FFI让您用源语言编写代码,如Python(FFI代码必须用C编写) 某些语言不使用FFI这个术语(尽管如果使用的话会更好)。对于Java,它被称为或JNI。语言(通常)定义了调用“本机”代码的语法。所以,如果您有导出方法
foo()
的库,那么在您的示例中,进行投标意味着您将使用方法foo()
创建Java类。这样,您就可以从代码的其余部分调用MyBinding.foo()
,无论它是纯Java方法还是编译的C代码,都不会有任何区别
同样对于Java,您可能需要查看文档。其他语言也有类似的机制。有这样的工具将获取大量的C(++)头文件,并为其生成Python绑定。我想其他语言也可以有类似的工具。谢谢。事实上,我知道JNI。但我不知道我应该在哪里挖掘更多的信息。