Python ctypes访问冲突

Python ctypes访问冲突,python,ctypes,Python,Ctypes,我正在尝试从python访问dll,如下所示。我尝试并从dll调用的第一个函数似乎工作正常,因此我必须在大部分过程中完成,但第二个函数会导致访问冲突 Python代码: #create open function openProto = ctypes.WINFUNCTYPE( ctypes.c_int, ctypes.c_void_p ) openParams = ( 1, "handle", 0 ) , open = openProto ( ( "SensorOpen", pm ), open

我正在尝试从python访问dll,如下所示。我尝试并从dll调用的第一个函数似乎工作正常,因此我必须在大部分过程中完成,但第二个函数会导致访问冲突

Python代码:

#create open function
openProto = ctypes.WINFUNCTYPE( ctypes.c_int, ctypes.c_void_p )
openParams = ( 1, "handle", 0 ) ,
open = openProto ( ( "SensorOpen", pm ), openParams )

#create zero function
zeroProto = ctypes.WINFUNCTYPE( ctypes.c_int, ctypes.c_int )
zeroParams = ( 1, "handle", 0 ), 
zero = zeroProto ( ( "SensorZero", pm ), zeroParams )

handle = ctypes.c_int ( 0 )
status = ctypes.c_int ( 0 )
open( ctypes.byref(handle) )
print handle
zero( handle )
调用零句柄时会发生访问冲突

<>这是C++代码,这里是:< /P>
SENSOR_HANDLE   seHandle;  // Sensor handle
double          power;
char            buff[80];

// Get handle for sensor
SensorOpen (&seHandle);

printf ("Sensor connected\nZeroing, please wait...\n");
while (SensorZero (seHandle) == SENSOR_ZERO_FAILED)
{
    printf ("Zero failed.\nCheck no power is being applied.\nPress return key to retry  ");
    gets (buff);
}
其中传感器手柄只是一个类型定义的int

有什么想法吗?我认为不处理返回值是可以的。

问题已解决


< > C++代码是提供一些文档的示例代码。不用说示例代码和文档是不正确的,zero函数仍然希望它的参数作为指针。

如果您想帮助他人解答问题,您可能需要说明它们不正确的原因。您不应该在任何地方编写SOLVED;这就是公认的答案。如果你已经解决了这个问题,那么自己写下解决方案。找一个不同的例子。这肯定是我见过的使用ctypes的最令人困惑的方式。试一试。@Alexander我两天内都无法将自己的答案标记为正确,我不想浪费别人的时间,让他们阅读整个问题,却发现这是不必要的。我现在已经把它移走了。