调用的都是同一个 C 函数,python 用的 ctypes
// c 语言中调用是这样
Init("{\"a\":\"../../av\", \"b\":\"../../bv\"}")
#如果用 python 调用 init 函数时,应该传递啥样的 json 字符串?这样不行😂,提示 expected key string
Init('{"a": "../av", "b": "../bv"}')
1
lynskylate 2019-02-17 22:08:47 +08:00 via Android
...你先确认下你 python 版本,c 默认接受是 char*的话,ctypes 传的参数必须是 bytes
|
2
xd314697475 2019-02-17 22:24:12 +08:00
你把 c 的函数接口类型确定了
Init ( char *x ) 然后 python 里 s="{\"a\":\"../../av\", \"b\":\"../../bv\"}" .Init ( s ) |
3
ysc3839 2019-02-17 23:33:45 +08:00
试试 Init('{"a": "../av", "b": "../bv"}'.encode())
如果可以的话把完整代码发上来吧。 |
4
css3 OP @xd314697475 这样肯定不行啊,语法都是错误,python 双引号中,不能再用双引号啊
|
5
css3 OP @xd314697475 忽略 4 楼我说的,这样是不行的,就是我主帖里边的报的错:expected key string
|
7
ysc3839 2019-02-18 10:24:01 +08:00 via Android
@css3 忘记了,应该可以更简单,试试
Init(b'{"a": "../av", "b": "../bv"}') |