我正在尝试为C项目编写Python DLL包装器
Python DLL包装器可以在以下位置找到: https://github.com/GitHubStefan13/SOEM-for-Python
重要的原始C代码:
char IOmap[4096];
int ec_config_overlap(uint8 usetable, void *pIOmap);
Python包装器
IOMap = ctypes.POINTER(ctypes.c_char * 4096)
c_ec_config_overlap = ethercat.ec_config_overlap
c_ec_config_overlap.argtypes = [ctypes.c_unit8, IOMap]
c_ec_config_overlap.restype = ctypes.c_int
当我试图用Python定义函数时
def ec_config_overlap(usetable, PIOMap):
return c_ec_config_overlap(usetable, PIOMap
叫它吧。 我收到错误
ctypes.ArgumentError: argument 2: : expected LPc_char_Array_4096 instance instead of _ctypes.PyPointerType.
我理解这个错误,但是我该如何让ctype变成Array[4096]而不是PyPointerType呢?你知道吗
此语法创建数组实例:
由于它是一个
char
数组,您还可以使用:函数的类型应为:
但为了更好地进行类型检查,您还可以使用:
相关问题 更多 >
编程相关推荐