11得票2回答
如何创建一个Nim DLL并从C#中调用它

我已经通过谷歌阅读了几乎所有的示例,但是无法完成最简单的任务——从 nim (Windows)创建一个dll。 有人能够逐步解释一下吗? 我正在使用 nim IDE - aporia 来生成代码。 构建 dll 需要使用命令行吗?我猜肯定有绕过的方法。 如何在 aporia IDE或命令...

11得票2回答
在C语言中实现MVar?

是否有已知在C语言中实现Haskell MVar的方法?有一个C++实现的示例。但是,我想在C语言中实现它 - 目前只考虑相当于MVar CInt的C语言等价物。编写同步原语可能很棘手。因此,如果有人已经完成了该工作,我将避免重复劳动。我没有完全理解上面的C ++示例,无法自信地将其翻译成C语...

16得票1回答
如何从Python ctypes中取消引用内存位置?

我想在Python的ctypes中复制以下C代码:main() { long *ptr = (long *)0x7fff96000000; printf("%lx",*ptr); } 我知道如何将这个内存位置作为函数指针调用,但不知道如何进行普通的解引用操作:from ctypes i...

8得票1回答
如何在Go中使用一个切片作为参数调用Rust函数?

我希望能够使用一个切片的引用,从Go语言中调用一些用Rust编写的外部函数。 我有以下的Rust代码: extern crate libc; #[no_mangle] pub extern "C" fn callme(data: &mut [libc::c_double]) -&...

11得票1回答
从Swift调用Rust

在Rust端,我写了一个函数,它返回一个字符串作为字节指针(以C结构在内存中布局): 在Rust侧,我编写了一个函数,该函数返回一个作为字节指针的字符串(在内存中以C结构布局):#[repr(C)] pub struct RustByteSlice { pub bytes: *con...

7得票1回答
本地调用接口:如何翻译“wchar_t”?

我希望在Perl 6中使用ncurses的int addwstr(const wchar_t *wstr);函数。 我该如何获得一个Perl 6签名,来传递addwstr函数中的const wchar_t *wstr参数? use v6; use NativeCall; constant...

8得票2回答
为什么将一个Box指针传递给C再返回Rust会导致段错误?

一些 C 代码调用了下面的 Rust open 调用,返回一个指针。稍后,C 代码将完全相同的指针传回到 close 函数中,该函数尝试释放它。在 free(3) 中会发生段错误。原因是什么? use std::os::raw::{c_int, c_void}; struct Handle...

7得票1回答
使用Cabal和GHC构建库的区别

我希望能够从Haskell代码构建库,并在我的C++项目中进一步使用这个库(共享库:dll或类似)。 我找到了一个简单的教程:http://blogging.makesmeanerd.com/?p=367,并成功地重复了这个例子。 接着,我简化了这个例子,并得到了下面的代码: {-# L...

42得票4回答
混合使用Haskell和C++

如果您有一个应用程序,可以同时使用Haskell和C++,您会让哪些层由Haskell管理,哪些层由C++管理? 是否已经有人做过这样的组合呢? (Haskell网站称它非常容易,因为Haskell可以通过gcc编译为C) 首先,我认为我会将所有的I/O操作和GUI管理都保留在C++层。...

16得票2回答
从Rust调用动态链接的Haskell代码

我正在尝试将一些Rust代码与一些Haskell代码编译在一起。我已经设置了一个测试系统,其中包含一个文件Fibonacci.hs,其中定义了一个在Haskell中计算斐波那契数列的函数,并通过Haskell的FFI导出该函数作为 fibonacci_hs (参见这里:https://gith...