Re: [问题] 呼叫C 函式的问题

楼主: vgy   2017-07-07 21:58:18
in c function f(char *p) 一块memory 的复制
原本用SWIG 转出来的module来使用 ,可是用create_string_buffer传给
function f 会遇到 argument type 不对
后来把C编译成 share library 然后用CDLL loadlibrary来使用
lib = CDLL("libtest.so")
dump= lib.f;
dump.argtypes =[c_char_p]
data =create_string_buffer(100)
dump(data)
print repr(data.raw)
这样运作 是没遇到问题 不过资料看起来怪怪的
在C里面资料是 100030029008....
在python印出来是
\x00\x01\x00\x00\x03\x00\x00\x02\x00\t\x00\x08
有些资料会怪怪的, 有人知道该如何让
python create 一块memory 然后给C去写资料吗
作者: uranusjr (←這人是超級笨蛋)   2017-07-08 18:11:00
Python 的资料每 16 位元一组刚好等于 C 那边的 8 位元所以看起来是你两边的格式没有 match, 可能是 C 输出的其实是 wchar * 之类的
作者: os653   2017-07-08 18:25:00
你C跟Python一定有一边输出写错吧直接叫function回传0123456789abcdefg看结果比较快

Links booklink

Contact Us: admin [ a t ] ucptt.com