我正在尝试在我的 C 代码中使用 Haskell 库。我尝试使用的 Haskell 函数具有 String -> IO [Reference]
类型,其中 Reference
是一个相当复杂的结构(参见 here for details)。
根据阅读各种文档,我似乎必须使这种类型成为 Storable
的实例,并且在我的 C 代码中定义一个类似的结构才能访问它。对于如此复杂的类型,这似乎是很多非常重复的工作。有没有办法自动化这个?怎么会去做这样的事情?
最佳答案
这取决于您的实际用例,但是...
将 Reference
导出为不透明类型(通过 Foreign.StablePtr )并导出 getter 函数以访问各个字段可能会更容易。
如果您需要更多详细信息,请告诉我,我会扩展答案。
关于c - 基于复杂的 Haskell 类型生成 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14500582/