Bonjour à tous,

Afin de transformer un QString en "char*", j'ai utilisé la fonction QString::data(), afin d'obtenir un "QChar*";
Cependant, il existe deux définitions de cette fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
QChar * QString::data ()
const QChar * QString::data () const
Quand j'appelle la fonction data, le compilateur/linker utilise la deuxième définition, et veut me renvoyer un "const QChar*", alors que c'est la première que je veux.

Ce que je trouve débile, c'est qu'il existe une fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
const QChar * QString::constData () const
qui réalise exactement la même fonction que la deuxième définition de data().

Je voulais donc savoir qu'elle méthode je pouvais utiliser pour que mon compilateur utilise la bonne fonction data(). J'utilise le compilateur de VS 2008 express, sur XP SP2. (configure de Qt : -platform win32-MSVC2008 ).

Sinon, avez vous une meilleure méthode pour passer d'un QString à un char* ? J'ai essayé de passer par un std::string, mais ce dernier n'offre que la possibilité de récupérer un const char* . Ou alors, il faut que je recré mon char * en faisant une copie caractère par caractère de mon const char *. Mais c'est plus lourd.

Merci d'avance pour vos remarques,

G.