我希望使用Fiddle来访问由Rust代码编译的本地库。该结构体的C表示非常简单,只有一个指针和一个长度: typedef struct { char *data; size_t len; } my_thing_t; // Example function that som...
我正在使用Rust,bindgen和build script来开发与库的FFI绑定相关的项目。 该库使用OpenMP构建,因此在链接时,我通常会向编译器传递-fopenmp标志。 如何在使用Cargo构建库时,通过build.rs设置该标志? 当前,使用Cargo构建失败,失败命令类似于...
bundle install Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Resolving depen...
在Rust中,我发现PhantomData的概念非常令人困惑。我广泛地使用它来约束我的基于FFI的代码中的对象生命周期,但我仍然不确定我是否正确地使用了它。 这是一个编造的示例,展示我通常如何使用它。例如,我不希望MyStruct的实例超过Context的实例存在:// FFI declar...
假设有一些参数以某种方式存储,例如在数组中。 给定一个函数指针,我如何调用它并传递存储的参数列表? 我不是试图将数组作为参数传递。你理解了没,好吧?我想逐个将其元素作为参数传递。数组只是为了说明,我可以将参数存储在某些元组结构中。此外,请注意,我手头有一个函数指针,并且可能具有字符串格式的签名...
我创建了以下用于读取图像的C语言库:typedef struct { unsigned int height; unsigned int width; unsigned char* red; //length=height*width unsigned cha...
假设 charm.c 文件有一个枚举类型 key 和一个返回 key 类型值的函数 get_key()。 如何暴露相应的 Haskell 的 Key 记录和函数 getKey :: IO Key? 而且,如何在不手动指定每个枚举值如何映射到 Haskell 值的情况下完成这个任务?
我有一个使用C99 bool数据类型的库,我想通过FFI调用它。 在Haskell中,C99 bool的对应类型是什么?在Foreign.C.types中有CInt、CShort等类型,但没有CBool。 如果没有“正确”的bool类型,有哪种安全的替代类型可以传递给期望bool的函数? ...