Python类型。如何将LPVOID传递到C++函数

2024-07-05 11:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用cType将字符串传递给C++函数,并返回一个。函数声明是:

BOOL PERFORMAXCOM_API _stdcall SendReceive(IN HANDLE pHandle, 
                          IN LPVOID wBuffer,
                          IN DWORD dwNumBytesToWrite,
                          IN DWORD dwNumBytesToRead,
                          OUT LPVOID rBuffer)

我对HANDLEDWORD变量很满意,我在一个类似的函数中用以下设置实现了OUT LPVOID

^{pr2}$

当与类似的OUT LPVOID一起使用时,会返回一个字符串。在

我当前从输入的字符串cmdStr(例如“E0=1”)创建IN LPVOID的方法是:

szSendStr = c_char * 64
SendStr = szSendStr()

for i in range(len(cmdStr)):
    SendStr[i] = cmdStr[i]

然后使用以下声明将其传递给函数: Status = SendReceive(byref(hUSBDevice), c_void_p(addressof(SendStr)), 64, 64, ReplyBuffer)

我尝试过许多不同的排列方式来将SendStr传递给函数,但从来没有通过ReplyBuffer中的空字符串获得任何内容。有没有办法传递我丢失的那根绳子?在

谢谢

劳伦斯


Tags: 函数字符串in声明outctypeboolhandle