利用ctypes可以方便地調用本地的動態鏈接庫dll,但是C中的“指針的指針”很難表示。
如果dll中有以下函數:
int test(void** p)
{
if(p == NULL)
return -1;
void* a = *p;
if(a == NULL)
return -2;
int* b = (int*)a;
return *b;
}
在python中對其進行不用的測試:
test(None)
return : -1
-------------------------------------------
a = c_void_p(None)
b = pointer(a)
test(b)
return : -2
-------------------------------------------
a = c_int(13)
b = pointer(a)
c = pointer(b)
test(c)
return : 13
則void**的表示方法顯而易見。
推薦閱讀:
《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm
Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm
Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡