最近用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
請問可以怎麼解決?
感謝。