如果我有C#方法,将List作为一个参数,例如这个
private bool ReadResponse(HidDevice device, List<byte> response, int length){
//do something
}
我需要将其重新编写为C.使用unsigned char *pointer
作为参数是正确的方法吗?这是我现在拥有的当前C函数签名。在调用函数时,我将传递unsigned char data[64]
作为第一个参数。
bool ReadReport(unsigned char *response, int length){
// do something
}
最终用途是我需要稍后将所有读取的字节存储到字符串中。
答案 0 :(得分:1)
如果你有一个带有
签名的功能bool ReadReport(unsigned char *response, int length)
您需要将其称为
ReadReport(data, len);
^
| //it expects unsigned char *, not unsigned char
答案 1 :(得分:0)
确实byte
的正确类型是使用unsigned char
,或者在您的情况下使用unsigned char *response
。有一点不同,在C#中你可以动态调整大小/添加新元素到列表,你不能在C中这样做;如果是这种情况,您可能需要使用realloc
。 (或者实现类似动态的vector)。