问题标签 [ffi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 使用 ffi 将 c++ 数据类型导入到 haskell
我正在为 c++ 库编写一个 haskell 包装器,尽管我可以将函数从库中导入到我的 haskell 程序中,但我不知道如何导入 c++ 数据类型。例如,我有一个函数,它将在 some.h 文件中定义的 video::E_DRIVER_TYPE EDT_OPENGL 类型作为参数,正如我之前所说,我知道如何使用 ffi 导入函数
国外进口电话...
具有适当的编译器损坏的函数名称
但我无法从haskell 调用该函数,因为我不知道如何导入/使用这个特定的视频驱动程序数据类型。
现在,我知道您可以在 Haskell 中创建类型,但我仍然需要一个起点来确定将类型定义为 C++ 表示形式是什么。(此时我很困惑)
我将不胜感激任何帮助!谢谢
scheme - 使用 PltScheme FFI 中的 _bitmask
这是 plt-scheme 包装库的一部分:
问题是我无法弄清楚如何访问位掩码(或枚举)中的字段。例如,如何获取 KeyPressMask 值?
external - OCaml 外部声明中的 % 是什么意思?
OCaml 标准库中的许多external
声明在函数名的开头都有一个 %,例如 的定义int_of_float
:
'%' 是什么意思?
c++ - 在 haskell 的 FFI 后面使用 stdout/stderr/stdin 流
我正在开发一个使用我用 C++ 开发的外部静态库的小型 haskell 程序。它通过 ghc 的 FFI(外部函数接口)访问 lib。在这个库中,我想对控制台做一些输出。但是,在我看来,事情的 c++ 方面没有正确的标准输出句柄,因为输出没有出现在控制台上。那么,我的问题是:
- ghc 会劫持这三个流(stdout、stdin、stderr)还是 libstdc++ 只是因为我与 ghc 链接而没有初始化它们?
- 如果它们写入标准输出,我的 FFI 导入是否需要“安全”?
- 如何将标准输出传递给 C 函数?我应该直接传递它还是需要一个 C 类型?
附加说明:我将 libstdc++ 直接链接到可执行文件(即 ghc -lstdc++ ...),我天真地认为这是正确的做法。似乎运作良好
免责声明:对 Haskell 来说还是很新的,所以现在是婴儿步骤;P
haskell - 如何在haskell中“解包”结构
我最近遇到了这个问题并找到了解决方案,但我想知道是否有更好的(或者只是更惯用的)解决方案。
我有一个颜色的结构:
还有一个函数我想将颜色分量单独传递给,实际上来自开罗:
所以我需要以某种方式“解包”这个数据结构,因为setSourceRGB
不需要Rgb
. 我找到了两种方法。一种是定义一个函数来应用 a 的内容Rgb
:
然后我可以这样做:
我想出的另一种方法是使用 case 执行内联 lambda 表达式,这意味着我不必定义单独的函数:
然而,我对此并不完全满意,以某种方式应用一个函数来传递一些值似乎并不正确。我希望能够把它转过来,Rgb
并将setSourceRGB
. 不幸的是,在我看来这是不可能的功能
可以传递给setSourceRGB
. 也许applyRgb
是最好的解决方案,但我想知道是否有更好的方法可以让我将其表达为:
c++ - 具有不错的 C++ FFI 的可破解方案实现
我尝试过:scheme48、chicken、gambit、clojure。
我正在寻找一个可读的方案实现(实现本身),并且具有不错的 C++ ffi 和良好的调试支持(所以当我遇到异常时,我应该进入递归 repl)。
人们有什么建议?
java - 从 Java 中调用 Haskell 函数的最佳方式
我正在寻找一种从 Java 程序中执行 Haskell 函数的有效方法。我考虑过使用 exec() 与 GHC 交互,但似乎应该有更好的方法。
erlang - erlang“erl_nif”功能
我主要通过端口驱动程序来连接 Erlang,但现在随着erl_nif
功能的出现,我想知道我是否应该再投资端口驱动程序。
功能会erl_nif
繁荣还是萧条FFI
?
ruby - 迭代 Ruby FFI 结构布局
我正在使用非常棒的ruby ffi库来访问 ruby 中 ac 库中的函数。
有没有办法迭代 Ruby FFI::Struct 的布局?
示例 FFI::结构:
这似乎不起作用,但类似于下面的伪代码:
c - 如何使用“外部函数接口”从 Go 调用 C
如何使用 Go 的“外部函数接口”调用 C 函数?
FAQ中提到了这个接口,但我在文档的其他地方看不到它。