2010-11-06 63 views
3

我想知道是否有任何好的文档将Haskell与外部世界(特别是.NET)集成在一起。我希望能够在.NET代码中调用Haskell函数。我看到有一个先前提出的问题显示了如何来回传递字符串,但我想知道是否有更多的一般引用和传递更复杂类型的可能性。将Haskell与.Net整合?

+1

杜佩:http://stackoverflow.com/questions/1494478/call-a-haskell-function-in-net – caesay 2010-11-06 02:08:01

+0

我读线程的它展现的调用一个字符串函数的一个具体的例子。我正在寻找更多关于如何从Haskell中导出函数的一般文档。 – Ochowie 2010-11-06 02:10:34

+0

[在.NET中调用Haskell函数]的可能重复(https://stackoverflow.com/questions/1494478/call-a-haskell-function-in-net) – 2017-08-16 03:55:20

回答

3

您应该更清楚地阅读that other question中的内容,因为它实际上提供了相关内容的链接。但这里有一个要点的版本,反正:

  • 您可以从.NET中使用P/Invoke调用非托管的本机代码。请参阅维基百科文章的结尾,以获取有关此部分的教程和文档。

  • 您可以通过Haskell's FFI导出Haskell函数。确保使用正确的调用约定(stdcall,not ccall)导出函数。另见GHC的FFI documentation

所以基本上你想要做的是导出的Haskell函数,如果你打算从C使用它们,打造你想要的功能的DLL,然后使用P/Invoke来调用Haskell函数。当然,重新阅读其他问题的答案,它提到了几个需要避免的缺陷。

+0

我想这似乎是最好的资源我'也发现了。我也发现这个线程http://stackoverflow.com/questions/3338940/automatic-conversion-of-types-for-ffi-calls-in-haskell – Ochowie 2010-11-06 02:45:51