Python中用ctypes调用C++ DLL时的内存管理陷阱
用Python ctypes调用C++ DLL时常见的内存管理问题:1. 指针类型要用c_void_p而不是c_int,否则64位下会截断 2. 字符串参数用c_char_p会自动加null终止符,但c_char数组不会 3. 结构体定义必须和C++端完全一致,包括字段顺序和对齐 4. 回调函数要用CFUNCTYPE包装,否则会被GC回收导致崩溃 5. 返回值如果是指针,要确保C++端不会释放它。这些坑踩过的都懂。
页:
[1]