Je réalise une communication par port série vers une pompe commandée par ordinateur et la fonction createfile que je communiquais nécessite que le nom du port COM soit analysé comme un pointeur wchar_t. J'utilise également QT pour créer un formulaire et acquérir le nom du port COM en tant que QString.Besoin de convertir char * (pointeur) en wchar_t * (pointeur)
Ce QString est converti en un tableau de caractères et souligné comme suit:
char* Dialog::GetPumpSerialPortNumber(){
QString mystring;
mystring = ui->comboBox_2->currentText();
char * mychar;
mychar = mystring.toLatin1().data();
return mychar;
je maintenant besoin de mettre mon numéro de port qui est stocké comme wchar_t * dans mon objet de la pompe. Je le fais en appelant la fonction suivante:
void pump::setPortNumber(wchar_t* portNumber){
this->portNumber = portNumber;
}
Alors, comment puis-je changer mon char * (MyChar) dans un wchar_t * (portNumber)?
Merci.
Vous avez un problème de mémoire potentiel avec votre fonction, il renvoie un pointeur vers la mémoire à l'intérieur d'une variable temporaire (le résultat de toLatin1()); –