Python ctypes中void**的表示

2014-11-23 23:41:52 · 作者: · 浏览: 13

利用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**的表示方法显而易见。


推荐阅读: