我从网上下载了一个开源的ML编写的软件Unison,希望可以复用部分功能,但是在我的项目中我使用的是C语言,有没有办法用C语言调用ML编写的接口(函数)?我希望可能有一些方法可以调用外部 ML 函数,例如在 Windows 上使用 C++ 调用 Dlls 中的函数。
我认为可能有3种可能的方式:
1.将ML代码移植到C。
2.用汇编语言编译ML代码并通过函数地址调用函数。
3.使用socket等进程间通信方式。
但我需要更有效和高效的方法,软件中有大约 30000 行 ML 代码。
OCaml,编写 Unison 的 ML 方言可以与 C 接口。参考手册中有一章描述了如何完成:请参阅http://caml.inria.fr/pub/docs/manual-ocaml /manual033.html#toc148用于 OCaml -> C 方式。