我在C++中非常新,并且想将char*
从std::string
转换为byte*
。如何在C++中将char *转换为字节*
这是我的代码:
在g++
,输出为:
AESXCBC128.cpp: In function ‘std::string CryptoPP::XOR(const string&, const string&)’:
AESXCBC128.cpp:79:48: error: invalid conversion from ‘char*’ to ‘byte* {aka unsigned char*}’ [-fpermissive]
xorbuf(&retval[0], &key[0], retval.length());
^
AESXCBC128.cpp:45:6: error: initializing argument 1 of ‘void CryptoPP::xorbuf(byte*, const byte*, size_t)’ [-fpermissive]
void xorbuf(byte *buf, const byte *mask, size_t count)
^
AESXCBC128.cpp:79:48: error: invalid conversion from ‘const char*’ to ‘const byte* {aka const unsigned char*}’ [-fpermissive]
xorbuf(&retval[0], &key[0], retval.length());
^
AESXCBC128.cpp:45:6: error: initializing argument 2 of ‘void CryptoPP::xorbuf(byte*, const byte*, size_t)’ [-fpermissive]
void xorbuf(byte *buf, const byte *mask, size_t count)
一个char是不是在C++ – user
字符串,好像你正在使用非标准C++,或者你复制了一个Java代码。 C++没有“byte”,“word32”或“word64”类型。 –
@DannyuNDos - 我敢打赌,他们只是typedef,这是标准的一部分。这里真正的问题是'byte'是'unsigned char',而字符串包含'char',这是一种不同的类型。编译器还说,添加'-fpermissive'选项将使其忽略错误。可能是一个临时解决方案。 –