使用ctypes(python3),我试图转换一个_FuncPtr
对象,它应该是一个标识符或类型c_void_p
。你知道吗
但是使用cast
会产生错误的地址,而in_dll
会产生正确的地址。你知道吗
在下面的代码中,使用p1
会导致segfault,而p2
会按预期工作。
为什么会这样,如何正确地将_FuncPtr
转换为c_void_p
?你知道吗
windows = CGWindowListCopyWindowInfo( kCGWindowListOptionAll, kCGNullWindowID )
for _win in cfarray( windows ):
print( _win )
p1 = cast( Q.kCGWindowNumber, c_void_p )
p2 = c_void_p.in_dll( Q, "kCGWindowNumber" )
pid = CFDictionaryGetValue( _win, p2 )
print( pid )
目前没有回答
相关问题 更多 >
编程相关推荐