我想应该是直截了当的。我很有信心这是我不知道怎么问这个简单问题的一个例子。
尝试将python对象(列表)强制转换为无符号字符数组。

PyObject * py_data;
unsigned char c_data[MAX_LENGTH];

// py_data is filled using the PyArg_ParseTuple(....)

// Build the outbound payload
for(i=0; i < block_length; i++)
{
    c_data[i] = HOW_TO_CAST_THIS(py_data[i]);
}

我读过《a a》,这是一本很好的书,也没什么好运气。
任何其他教程或参考建议将是伟大的。

最佳答案

要从元组中取出项目,您必须使用PyTuple_GetItem(或者,如果您知道它是元组,则可以使用不安全的PyTuple_GET_ITEM)。这会给你PyObjects。
要从ints中获取PyObjects,请使用PyInt_AsLong
决不要将PyObject s转换为C类型(除了void *),不要尝试使用索引标记(PyObject)索引py_data[i]。两者都会给你很坏的结果。始终使用Python API方法处理PyObjects。

10-07 13:30