我有一个场景,Rust将调用C来malloc缓冲区,并将结果指针存储到结构体中。随后,该结构体将被移动到线程并传递给一个C函数进行修改。 对于我的问题,简单的解决方案如下所示(playground): extern crate libc; use libc::{c_void, mallo...
我的问题是如何编写友好的Haskell接口,以模拟可以从C代码调用的回调。回调在此处进行处理(HaskellWiki),但我认为这个问题比该链接中的示例更复杂。 假设我们有需要回调的C代码,头文件如下: typedef int CallbackType(char* input, char*...
什么是hsc2hs和c2hs之间的区别? 我知道hsc2hs是一个预处理器,但它具体做了什么? c2hs可以从C代码生成Haskell模块,但我是否需要hsc2hs来完成这个操作?
我正在使用 'ffi', '~> 1.9'。 当我尝试运行我的Rails项目时,出现了以下错误: rake aborted! LoadError: dlopen(/Users/kanye.west/.rbenv/versions/2.6.9/lib/ruby/gems/2.6.0/g...
假设有一些参数以某种方式存储,例如在数组中。 给定一个函数指针,我如何调用它并传递存储的参数列表? 我不是试图将数组作为参数传递。你理解了没,好吧?我想逐个将其元素作为参数传递。数组只是为了说明,我可以将参数存储在某些元组结构中。此外,请注意,我手头有一个函数指针,并且可能具有字符串格式的签名...
我正在尝试将LuaJIT嵌入到C应用程序中。 代码如下: #include <lua.h> #include <lualib.h> #include <lauxlib.h> #include <stdlib.h> #include <st...
我希望在pub extern "C" fn中返回一个向量。由于向量长度是任意的,我猜我需要返回一个结构体,其中包含: 指向向量的指针 向量中元素的数量 我的当前代码如下: extern crate libc; use self::libc::{size_t, int32_t, int...
我正尝试构建一对元素: array: *mut T array_len: usize array 旨在拥有数据。 然而,Box::into_raw 将返回 *mut [T]。我找不到任何关于将裸指针转换为切片的信息。它在内存中的布局是什么?我如何从 C 中使用它?是否应该转换为 *m...
我一直在努力用Haskell编写Windows服务应用程序。 背景 服务应用程序由Windows Service Control Manager执行。启动后,它会对StartServiceCtrlDispatcher进行阻塞调用,该函数提供用作服务主函数的回调函数。 服务的主函数应注册第...