我正在连接一个 C 库,并且有一个函数,它的回调参数类型为(int (*fun) (void *))
。
我将如何处理这个c2hs
?我没有看到
https://github.com/haskell/c2hs/wiki/Implementation-of-Haskell-Binding-Modules或http://www.cse.unsw.edu.au/~chak/papers中提到的回调/Cha99b.html。
在我的实际应用程序中,回调不做任何计算——它只需要检查是否同时设置了一些标志,我想从 Haskell 线程中设置它。(因此,显而易见的解决方法是在 C 语言中声明回调和标志,并让 Haskell 函数设置标志。)
(编辑)我还检查了https://wiki.haskell.org/Calling_Haskell_from_C但因为“ghc -c ...将创建Safe_stub.c ...”而拒绝了它,我确信对C的编译早已不复存在。但实际上我得到了一个 stub.h(我需要它吗?)和目标文件。