저는 파이썬을 C++로 확장하여 악기와 대화하려고합니다. 하지만 포인터 (및 버퍼)에 문제가 있습니다. 나는 C++/C 언어에 아직 익숙하지 않다.unsigned long * buffer
내 C 헤더 파일에서, 나는 기능을 가지고 :
그래서 난 내 파이썬 모듈에서이 기능을 만들었습니다long EXPORT read_output(long DeviceID, char* Buffer, unsigned long Length, unsigned long* BytesRead);
:
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 괜찮 으면 도움이된다. 내 _answers를 comment_로 제거하면 어쨌든 답을 게시했습니다. –