【问题标题】:How to call ML interface(functions) in C language如何在 C 语言中调用 ML 接口(函数)
【发布时间】:2013-01-08 07:39:14
【问题描述】:

我从网上下载了一个开源的ML编写的软件Unison,我希望可以复用部分功能,但是在我的项目中我使用的是C语言,有没有办法用C语言调用ML编写的接口(函数)?我希望可能有一些方法可以调用外部 ML 函数,例如在 Windows 上使用 C++ 调用 Dlls 中的函数。

我认为可能有3种可能的方式:

1.将 ML 代码移植到 C.

2.用汇编语言编译ML代码并通过函数地址调用函数。

3.使用socket等进程间通信方式。

但我需要更有效和高效的方法,软件中有大约 30000 行 ML 代码。

【问题讨论】:

    标签: c function call invoke ml


    【解决方案1】:

    OCaml,编写 Unison 的 ML 方言可以与 C 接口。参考手册中有一章描述了如何做到这一点:有关 OCaml -> C 方式,请参见 http://caml.inria.fr/pub/docs/manual-ocaml/manual033.html#toc148

    【讨论】:

    • 感谢您的回答,现在我已经使用 OCaml 编译器在 Visual Studio 中成功构建了 Unison,并且使用关键字 Interfacting C with OCaml 确实有助于我搜索有关使用 C 调用 ML 函数的文章。跨度>
    猜你喜欢
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2017-10-06
    • 2018-03-26
    • 1970-01-01
    • 2020-11-17
    • 2013-04-21
    相关资源
    最近更新 更多