问题标签 [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.
java - 使用 JNA 检测 AppData\LocalLow 的位置
我正在尝试AppData\LocalLow
在 Windows 7 上使用 JNA 检测 Java 的工作位置。但可用于该工作的最接近的功能是:
这里我们有C# 中的解决方案
但就我而言,JAVA + JNA,我想知道如何只使用LocalLow GUID
with SHGetFolderPath
,或者我应该从不同的角度看待问题(也许 JNI 在这里会更好?)
如果有人可以帮忙,谢谢
干杯
编辑:好的,现在我添加了 SHGetKnownFolderPath,但是在这里,它不断返回我这样的字符串“?f”
}
haskell - Haskell FFI 对具有可变参数的函数的支持
任何人都可以向我展示一个使用带有可变参数(例如printf
)的 C 函数和 Haskell 的外部函数接口的示例吗?我尝试搜索 HaskellWiki,但没有找到这样的示例。
谢谢!
haskell - hsc2hs 和 c2hs 的区别?
hsc2hs 和 c2hs 有什么区别?
我知道什么是 hsc2hs 是一个预处理器,但它到底是做什么的?
c2hs 可以用 C 代码制作 Haskell 模块,但是我需要 hsc2hs 吗?
c - 从 OCaml 获取 C 二进制数据
(为了争论而忽略字节顺序——这只是一个测试用例/概念证明——我也永远不会strcpy
在实际代码中使用!)
考虑以下简单的 C 代码:
它写入的文件可以很容易地从磁盘读回:
例如
我的问题是,在 OCaml 中,如果我只有:
我将如何获得这些数据?Marshal
做不到,也做不到input_binary_int
。例如,我可以调用 C 中的辅助函数,例如“what is sizeof(int)
”,然后获取 n 个字节并调用 C 函数以“将这些字节转换为 int”,但在这种情况下,我无法添加任何新的 C 代码,即“解包”必须在 OCaml 中完成,基于我所知道的“应该”。是否只是在sizeof
s 块中迭代字符串或寻找 '\0' 还是有一个聪明的方法?谢谢!
php - 是否可以在 Haskell 中创建 PHP 扩展?
是否可以使用 Haskell 创建 PHP 扩展?
通常 PHP 扩展是使用 C 编写的。是否使用 Haskell FFI 为存根 C 扩展提供功能(甚至是一个好主意)?
这种方法有什么注意事项?Zend 是否会在后台执行一些魔法来破坏这样的计划?
haskell - 如何使用 hsc2hs 绑定常量、函数和数据结构?
我需要一个如何使用 hsc2hs 的例子,我想当我写一个头文件时:
然后创建一个 hsc 文件,如:
使用hsc2hs
:
我不明白,我认为 hsc2hs 会为我导入所有需要的东西,比如PI
谁能给我一个更好的例子?
haskell - 无法安装网络包
我已经安装了网络包。当我尝试重新安装它时(例如,用于 cabal-dev),它不会编译。如果我cabal unpack network
然后尝试构建它,我会得到下面的输出。我猜这是因为我升级了一个 Ubuntu 依赖项。我升级到了 Ubuntu 11.04,希望它会有所帮助;它没有。还安装了 libghc6-network-dev 以防万一可以正确链接;它没有。我在 ghc-7.0.2 上,也刚刚尝试过 ghc-7.0.3。目前正在尝试从源代码安装最新的 haskell 平台......任何帮助表示赞赏 - 这完全扼杀了我的 haskell 黑客攻击!
命令是:
这是我的 gcc 版本:
python - 从python调用prolog谓词
我有一些.pl
文件,我想从 python 脚本调用在其中声明的谓词。我怎样才能做到这一点?
例如,test.pl
像这样工作
我想以rD
某种方式从 python 脚本调用并在结果变量中得到答案
ps:这只是一个例子,我不想重写我现在的Prolog程序。
c++ - 将 Haskell ByteStrings 转换为 C++ std::string
我想将严格ByteStrings
从 Haskell 转换为 C++ ,以通过FFIstd::string
将其传递给 C++ 库。由于可能包含字符,因此转换为 a作为中间步骤是不可行的。这里的正确方法是什么?ByteString
NULL
CString
当前解决方案
感谢您到目前为止的答案。我希望该任务有一个规范的解决方案,但也许它还不存在:)
一些c++ 库文档说明如下:
字符串 ( const char * s, size_t n );
内容被初始化为由 s 指向的字符数组中的前 n 个字符组成的字符串的副本。
因此,可以编写这样一个函数,它从 ByteString 复制一次以构造 std::string
随之而来的 C++ 代码toCCString_
看起来就像 Neil 和 Alan 指出的那样。
haskell - Using the Haskell FFI to marshal structs; also, how to use FunPtr
I have some questions about the ffi in haskell
.
first of all i'm trying to work with c structs in haskell
.
there i have some questions: i have a struct like
- when could i use
data Foo = Foo { a :: Int, b :: Float } deriving (Show, Eq)
- when i have to implement a storable with peek and poke?
okay now a question about FunPtr
- i dont know when to use
FunPtr
why a normal definition likePtr CInt -> IO CInt
is not enough?