歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python ctypes中void**的表示

利用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 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved