2015-06-29 9 views
6

Próbuję utworzyć QByteArray ze std :: vector .. Próbowałem;Jak przekonwertować std :: vector <uint8_t> na QByteArray?

std::vector<uint8_t> buf; 
QByteArray img = new QByteArray(reinterpret_cast<const char>(buf), buf.size()); 

Daje jednak błąd;

error: invalid cast from type 'std::vector<unsigned char, std::allocator<unsigned char> >' to type 'const char' 

Odpowiedz

12

Trzeba rzucić buf.data() zamiast buf:

QByteArray* img = new QByteArray(reinterpret_cast<const char*>(buf.data()), buf.size()); 
+4

Uwaga '.data()' jest dostępny tylko w języku C++ 11 i później. Jeśli twój kompilator tego nie obsługuje, użyj '& buf [0]'. – Saul

+0

kiedy używam buf.data(), mówi "błąd: rzut z 'unsigned char *' na 'const char' traci precyzję' – goGud

+0

ohh .. mój błąd, nie użyłem znaku char .. dziękuję bardzo – goGud

Powiązane problemy