Ich bin sehr neu in C++ und möchte eine char*
von einer std::string
zu einer byte*
zu werfen.Wie wird ein char * in ein Byte * in C++ umgewandelt?
Hier ist mein Code:
In g++
, der Ausgang ist:
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)
ein Zeichen ist kein String in C++ – user
Es scheint, wie Sie Nicht-Standard verwenden C++, oder Sie haben einen Java-Code kopiert. C++ hat nicht den Typ 'byte',' word32' oder 'word64'. –
@DannyuNDos - Ich wette, sie sind nur Typdefs, was Teil des Standards ist. Das wirkliche Problem hier ist, dass "Byte" ist "unsigned char" und die Strings enthalten "char", ein anderer Typ. Der Compiler sagt auch, dass das Hinzufügen einer Option "-fpermissive" den Fehler ignorieren wird. Könnte eine vorübergehende Lösung sein. –