我正在通过ctypes将C库包装到Python中。目前我在一个参数上停留在一行或多行上。这里是C代码:
void* gVimbaHandleFake = (void*)1;
err = VmbFeatureBoolGet(gVimbaHandleFake, "GeVTLIsPresent", &isGigE );
问题是这个奇怪的空指针。一般来说,我知道什么是空指针,但这一个似乎是“特别的”。如果我更改(void*)1
中的1,程序将不再工作(它是关于查找网络摄像机)。它没有崩溃,但再也找不到摄像机了。在
我尝试了很多不同的方法,最后一次是在Python中:
^{pr2}$也尝试了“正常”的方式:
gVimbaHandle = c_void_p(1)
我的程序没有崩溃,但它告诉我句柄无效。。。
当我查看带有gVimbaHandle.value
的指针时,我得到1L
作为输出。长数据类型的L
就是这个问题吗?在
有没有人知道如何解决这个问题,或者能给我解释一下C语言中的“特殊”(void*)1
指针吗?在
非常感谢!在
所以解决方案/答案是:
谢谢@eryksun
相关问题 更多 >
编程相关推荐