Conversion entre QString et pj_str_t
Bonjour à tous,
j'utilise Qt pour le gui de mon application SIP. Pour traiter SIP, j'utilise le framework pjsip 2.1. Je suis souvent confronté au problème de conversion de chaine de caractères. En effet je récupère les données de mon formulaire Qt sous forme d'un QString et je dois le convertir en pj_str_t pour le passer au framework pjsip. Voici actuellement comment je fais pour passer de QString à pj_str_t
Code:
1 2 3 4 5
|
QString mystring = m_qtField.text();
QByteArray ba = mystring.toLatin1();
m_pj_account_cfg.username = pj_str(ba.data()); //ceci fonctionne |
Ce code fonctionne mais comme je dois le faire de nombreuse fois, je me suis dis que j'allai créer un classe pjsipQtWrapper qui va contenir des fonctions pour ce genre de conversion. Je crée donc une fonction comme ceci :
pjsipqtwrapper.h
Code:
1 2 3 4 5 6
|
class PjsipQtWrapper
{
public:
static pj_str_t ToPj_str(QString *string);
}; |
pjsipqtwrapper.cpp
Code:
1 2 3 4 5 6 7 8 9
|
#include "pjsipqtwrapper.h"
pj_str_t PjsipQtWrapper::ToPj_str(QString *string)
{
QByteArray ba = QByteArray();
ba = string->toLatin1();
return pj_str(ba.data());
} |
Lorsque que j'utilise ce code et que je print les valeurs à différents endroit comme par exemple dans la fonction, juste après la fonction etc. je vois des valeur correctes, mais lorsque que je l'assigne à un champs de structure pjsip, j'obtient des erreurs.
Code:
1 2 3 4 5
|
m_pj_account_cfg.id = PjsipQtWrapper::ToPj_str(&mystring); //ne fonctionne pas
pj_str username_p = PjsipQtWrapper::ToPj_str(&mystring);
m_pj_account_cfg.id = username_p; //ne fonctionne pas |
Je n'ai vraiment aucune, mais aucune idée de mon erreur.
merci d'avance de votre aide.