gpt4 book ai didi

ocaml - Ctypes 和指向字符串数组的指针

转载 作者:行者123 更新时间:2023-12-04 12:08:13 31 4
gpt4 key购买 nike

我有一个具有以下签名的 C 函数:

void init(int* argc, char** argv[]);

我想使用 Ctypes 从我的 OCaml 代码中调用此函数,但我想不出一个正确的方法来传递 Sys.argv给它。

最佳答案

这应该是诀窍:

module OArray = Array

open Ctypes;;
open Foreign;;

let init =
foreign "init" (ptr int @-> ptr string @-> returning void)

let init a =
let argc = allocate int (OArray.length a) in
let argv = Array.of_list string (OArray.to_list a) in
init argc (Array.start argv)

let () = init Sys.argv

请注意,我们需要掌握 OCaml 的 Array模块因为 Ctypes覆盖它,这将在 0.3 中更改,请参阅 this report .

关于ocaml - Ctypes 和指向字符串数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22582452/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com