如何使用C中的函数将函数回调作为Python代码中dll文件的参数?

时间:2016-05-19 10:01:33

标签: c python-2.7 visual-c++

我在C中有一个函数,它将函数回调作为dll中的参数。 MFC可以,下面是C代码

void OnReceive(unsigned char* pReportBuf, int nReportLen, int nReportCount, SYSDELTA_TIME timeStamp) {

    for (int iCount = 0; iCount < nReportCount; iCount++) {

        BYTE *Buf = new BYTE[nReportLen + 1]; 
        memcpy(Buf, &pReportBuf[iCount*nReportLen], sizeof(BYTE)*nReportLen);
        SYSDELTA_TIME *sTime = new SYSDELTA_TIME;
        memcpy(sTime, &timeStamp, sizeof(SYSDELTA_TIME));

    }

}
res = InputRawRegHIDCallback(OnReceive);

现在我需要将上面的代码移到Python上,但我不知道如何编写代码 Python代码的回调函数。任何人都可以帮我编码???

感谢您的大力帮助。

BR, 艾伦

1 个答案:

答案 0 :(得分:0)

使用ctypes,您可以wrap/annotate the callback function使用CFUNCTYPE获取类型信息,以便可以从C库中调用它们。