Python ctypes访问冲突

2024-04-25 23:46:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从python访问一个dll,在this guide之后。我尝试从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++代码,这里是:

^{pr2}$

其中SENSOR_句柄只是一个typedef'dint

有什么想法吗?我想不必对返回的值做任何事情。在


Tags: 函数代码createfunctionopenctypesintdll