我想知道是否有任何好的文档可以将Haskell与外部世界(特别是.NET)集成。我希望能够从我的.NET代码中调用Haskell函数。我看到有一个先前提出的问题,显示了如何来回传递字符串,但我想知道是否有更多的通用引用和传递更复杂类型的可能性。
答案 0 :(得分:4)
答案 1 :(得分:3)
你应该更清楚地阅读that other question中的内容,因为它确实提供了相关内容的链接。但无论如何这里是一个子弹点版本:
您可以使用P/Invoke从.NET调用非托管本机代码。有关此部分的教程和文档,请参阅Wikipedia文章的末尾。
您可以通过Haskell's FFI导出Haskell函数。确保使用正确的调用约定导出函数(stdcall,而不是ccall)。另见GHC的FFI documentation。
所以基本上你要做的就是导出你的Haskell函数,好像你要从C中使用它们,用你想要的函数构建一个DLL,然后使用P / Invoke来调用Haskell函数。并且肯定重新阅读了另一个问题的接受答案,它提到了你需要避免的几个陷阱。