2015-06-29 18 views
6

std :: vector'dan QByteArray oluşturmaya çalışıyorum. Denedim;Std :: vektör <uint8_t> QByteArray dönüştürmek nasıl?

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

Ancak hata verir;

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

cevap

12

Sen buf yerine buf.data() döküm gerekir:

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

Not '.Data()' C++ 11 ve daha sonra kullanılabilir. Derleyiciniz bunu desteklemiyorsa, '& buf [0]' kullanın. – Saul

+0

Buf.data() kullandığımda 'hata:' unsigned char * 'den' const char '' hassas ' – goGud

+0

ohh ..' hata yapar 'hatam, hata göstericisini kullanmadım .. hatam – goGud