Я пытаюсь расширить python на C++, чтобы поговорить с инструментом. Но у меня проблемы с указателями (и буферами). Я еще не знаком с языком C++/C.unsigned long * buffer
В моем заголовочном файле C, у меня есть функция:
long EXPORT read_output(long DeviceID, char* Buffer, unsigned long Length, unsigned long* BytesRead);
Таким образом, я создал эту функцию в моем модуле Python:
static PyObject *
Py_Get_ASCII(PyObject *self, PyObject *args)
{
long DeviceID;
char* Buffer;
unsigned long* BytesRead;
int param = PyArg_ParseTuple(args, "lz", &DeviceID, &Buffer);
//something for BytesRead (dont' know)***
long response = read_output(DeviceID, Buffer, strlen(Buffer), BytesRead);
// * enter more code depending on value of response
Py_INCREF(Py_None);
return Py_None;
}
Это может быть тупой, но я запутался как я должен интерпретировать «unsigned long * BytesRead» и создать для него буфер. В файле заголовка указывается, что BytesRead должен представлять количество прочитанных байтов, которое я предполагаю, это то, что читается устройством. Кажется, что все работает, за исключением случаев, когда я пытаюсь включить «BytesRead». Я был бы признателен за помощь в том, что я должен делать.
Считаете ли вы использование [ctypes] (https://docs.python.org/2/library/ctypes.html)? – 101
Нет такого языка, как «C++/C». На каком языке вы используете? Затем удалите другой тег. Благодарю. –
@LightnessRacesinOrbit OK хорошо, если это помогает. Удалив мои _answers как comment_, в любом случае вы отправили ответ. –