Convertir unsigned char[10] pour QBytearray;
J'ai vu beaucoup o questions autour de cela, mais jusqu'à présent, aucun n'a fonctionné pour moi.
J'ai essayé les 2 plus commun de réponses, mais j'obtiens la même erreur.
être mais un unsigned char buf[10];
ce,
QByteArray databuf;
databuf = QByteArray::fromRawData(buf, 10);
ou cette,
QByteArray databuf;
databuf = QByteArray(buf, 10);
m'a fait la même erreur,
error: invalid conversion from 'unsigned char*' to 'const char*' [-fpermissive]
des conseils?
merci
OriginalL'auteur SamuelNLP | 2013-03-11
Vous devez vous connecter pour publier un commentaire.
C'est juste ce paramètre question, donc cela devrait fonctionner:
Ou avec l'héritage de style C cast:
(Voici l'une de beaucoup de beaucoup de discussions sur lequel vous devez utiliser.)
Alternative plus facile est de supprimer
unsigned
de la déclaration debuf
, si vous n'avez pas besoin d'elle pour une autre raison.Notez que si vous utilisez cette
fromRawData
méthode, il ne copie pas les octets, donc mieux vaut être sûr debuf
de ne pas aller hors de portée trop tôt. En cas de doute, ne l'utilisez pas...error: invalid static_cast from type 'unsigned char [10]' to type 'char*'
Édité réponse.
Ma réponse inédite utilisé
static_cast
, ici, est lié à la question de pourquoi cela ne fonctionne pas: stackoverflow.com/questions/10151834/...OriginalL'auteur hyde
Comme il le dit, l'argument passé à
fromRawData
devrait être unconst char*
, pas ununsigned char*
. Vous pourriez faire de votre tableau soit un tableau deconst char
:Le tableau peut être converti en un pointeur sur son premier élément qui sera un
const char*
, exactement commefromRawData
attend.char *array
et de transmettre les données à partir debuf
d'abord vers le tableau et ensuite de les convertir?OriginalL'auteur Joseph Mansfield