105得票2回答
Rust: 如何使用 ffi 将 &cstr 转换为 String,然后再转换回去?

我正在尝试通过 FFI 将由 C 库返回的 C 字符串(&cstr)转换为 Rust 字符串。 mylib.c const char* hello(){ return "Hello World!"; } main.rs #![feature(link_args)] exte...

86得票12回答
CocoaPods在M1芯片(Apple Silicon)上失败,显示ffi错误的架构。

在 M1 MacBook 上运行 'pod install' 失败了,因为出现了 ffi 问题,如 这里所述。我尝试了一些解决方法(我想我按不同的顺序都试过了),但现在我得到了一个稍微不同的错误:LoadError - dlopen(/opt/homebrew/lib/ruby/gems/3....

67得票2回答
将Numpy数组传递给C函数进行输入和输出

哦,我的天啊,我真是个傻瓜。 在调用函数时,我只是简单地省略了第二和第三个参数。 就像个傻瓜一样。 因为这就是我。 以下是原始的愚蠢问题: 这似乎是一个非常常见的事情,但我找不到相关的教程,而且我对Numpy和ctypes也太无知了,以至于自己无法弄清楚。 我有一个在文件ctest.c中...

63得票10回答
Python:SWIG vs ctypes

在Python中,什么情况下SWIG比ctypes更适合调用共享库中的入口点?假设您没有SWIG接口文件。 这两者的性能指标是什么?

60得票5回答
用C++代码调用Haskell代码

我目前正在使用C++编写应用程序,发现其中一些功能最好使用Haskell编写。我看到了有关从C代码调用Haskell的说明,但是能否在C++中做到相同的呢? 编辑:澄清一下,我想要的是一种将Haskell代码编译为外部库的方法,以便g++可以将C++的目标代码与其链接。 更新:我已经在下面...

53得票1回答
了解外部函数接口(FFI)和语言绑定

混合不同的编程语言长期以来一直是我不太理解的事情。根据这篇维基百科文章,可以通过以下几种方式实现外部函数接口(FFI): 要求以特定方式指定或实现可在主机语言中调用的客户端语言函数;通常使用某种兼容性库。 使用工具自动“包装”客户端语言函数,并使用适当的粘合代码执行任何必要的翻译。 使用...

50得票1回答
使用 FFI 声明时,GHCi 运行时链接器出现问题

我有一个关于Haskell中FFI和GHC交互模式的问题,请看这里。 考虑FFISo.hs: {-# LANGUAGE OverloadedStrings #-} module Main where import qualified Data.ByteString.Char8 as B ...

46得票3回答
如何使用Haskell编写Windows服务应用程序?

我一直在努力用Haskell编写Windows服务应用程序。 背景 服务应用程序由Windows Service Control Manager执行。启动后,它会对StartServiceCtrlDispatcher进行阻塞调用,该函数提供用作服务主函数的回调函数。 服务的主函数应注册第...

46得票2回答
从C#调用Haskell

我刚刚花费了最后一周的时间来解决如何将C++代码作为我的日常工作的一部分从C#中执行。我们花费了很长时间才弄清楚,但最终的解决方案相当简单。 现在我很好奇...从C#调用Haskell有多难?(请注意:这是从C#调用Haskell,而不是反过来。因此,主要可执行文件是C#。) 如果确实很难...

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

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