![](/img/trans.png)
[英]How to convert unsigned char* to an unsigned char array in C/C++?
[英]C++ how to convert from char * to unsigned char * in function call?
在构建我的C ++应用程序时,在此代码行中构建失败
if (!PyTuple_GetByte(poArgs, 0, &SourceCell.window_type))
这个错误
错误C2664:'PyTuple_GetByte':无法将参数3从'char *'转换为'unsigned char *'
这就是所谓的函数:
bool PyTuple_GetByte(PyObject* poArgs, int pos, unsigned char* ret);
第三个参数&SourceCell.window_type
是char
类型。
有没有一种方法可以在函数调用中转换/转换参数
if (!PyTuple_GetByte(poArgs, 0, reinterpret_cast<unsigned char*>(&SourceCell.window_type)))
还是我必须以其他方式处理它?
由于该错误, PyTuple_GetByte
函数的签名期望第三个参数为unsigned char*
类型,但是您在调用时传递了char*
类型的变量。 我认为您在这里有两个选择。
您可以更改函数PyTuple_GetByte
的签名以使用char*
参数。
您需要先将输入变量从char*
类型转换为unsigned char*
类型,然后才能将其传递给PyTuple_GetByte
。
转换通常是这样的:
unsigned char* convert_var = reinterpret_cast<unsigned char*>(&SourceCell.window_type); // (c++ way)
要么
unsigned char* convert_var = (unsigned char*)(&SourceCell.window_type); // (c way)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.