ctypes函数ptr为c_void_p

时间:2015-10-18 02:10:39

标签: python ctypes

使用ctypes(python3),我试图转换一个真正应该是标识符或_FuncPtr类型的c_void_p对象。

但是使用cast会产生错误的地址,而in_dll会产生正确的地址。

在下面的代码中,使用p1导致段错误,而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 )

0 个答案:

没有答案