我在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'選項將使其忽略錯誤。可能是一個臨時解決方案。 –