在Python中设置c_char_p
在C头文件中,我有:在Python中设置c_char_p,python,pointers,header-files,ctypes,Python,Pointers,Header Files,Ctypes,在C头文件中,我有: long test_API callAndSave( ___OUT_ char param1[31], ___OUT_ char param2[5], ___OUT_ char param3[21], ___OUT_ char* pointerParam ); 我正在尝试设置并传递Python中的所有参数,并将它们传递给callAndSave: import ctypes from ctypes import * lib
long test_API callAndSave(
___OUT_ char param1[31],
___OUT_ char param2[5],
___OUT_ char param3[21],
___OUT_ char* pointerParam
);
我正在尝试设置并传递Python
中的所有参数,并将它们传递给callAndSave
:
import ctypes
from ctypes import *
lib = cdll.LoadLibrary('./testlib.so')
param1 = (ctypes.c_char*31)()
param2 = (ctypes.c_char*5)()
param3 = (ctypes.c_char*21)()
pointerParam = ctypes.c_char_p()
lib.eftTrx(param1,param2,param3,pointerParam)
但是我得到了pointerParam
的“输出参数为NULL
”错误。我应该如何在Python中正确定义“”字符*pointerParam
”
___OUT_ char* pointerParam
规范中的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
通常意味着该指针将写入数据。因此,您必须分配一个要写入的缓冲区ctypes.c\u char\u p()
不构成缓冲区-它只是一个空指针
调查。您必须计算出callAndSave
需要多大的缓冲区