最近用ctypes写一个wrapper去使用用C开发的DLL。
有一个函式是这样:
struct __abc
{
int8_t a;
.... (其他参数省略)
struct __abc* next;
} ;
然后
typedef struct __abc* ABC;
这个函式大概长这样:
ABC GetNext(ABC x)
{
return x->next; // 可以为NULL或这个linked list的下个元素
}
用ctypes包装的时候是这样:
_GetNext = _lib.GetNext
_GetNext.argtype = [ABC]
_GetNext.restype = ABC
结果我发现,如果执行的时候回传时刚好为NULL python就会出问题。
OSError: exception: access violation writing 0x00000000
请问可以怎么解决?
感谢。