首页 > 解决方案 > 使用 idris 绑定到 c 结构的抽象类型

问题描述

我找不到如何将其typedef struct TF_Status TF_Status;视为抽象类型并绑定到它

c函数是TF_Status* TF_NewStatus();

data TF_Status
tfNewStatus : IO TF_Status 
tfNewStatus = foreign FFI_C "TF_NewStatus" (IO TF_Status)

http://docs.idris-lang.org/en/latest/reference/ffi.html

它抱怨说When checking argument fty to function foreign: Can't find a value of type FTy FFI_C [] (IO TF_Status)

标签: ffiidris

解决方案


TF_Status* TF_NewStatus();调用时返回指向 a 的指针TF_Status。所以你只需要

tfNewStatus : IO Ptr 
tfNewStatus = foreign FFI_C "TF_NewStatus" (IO Ptr)

推荐阅读