IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

"conversion" _variant_t en CString


Sujet :

MFC

  1. #1
    kam
    kam est déconnecté
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Par défaut "conversion" _variant_t en CString
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    _variant_t var;
     
    .
    ..
    .........
     apres le traitment var equivaut à : {"text" VT_BSTR}
    ......
    ..
    .
     
    BSTR bstr;
     
    bstr = var.bstrVal;
    Cstring nom = bstr;
    j'aimerai récuperer la valeur "text" de la variable var dans nom.
    mon code ne marche pas.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    utilise ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void BSTRtoASC (BSTR str, char * &strRet) 
    {
    	if ( str != NULL ) 
    	{
    		unsigned long length = WideCharToMultiByte (CP_ACP, 0, str, SysStringLen(str), NULL, 0, NULL, NULL); 
            strRet = new char[length];
            length = WideCharToMultiByte (CP_ACP, 0, str, SysStringLen(str), reinterpret_cast <char *>(strRet), length, NULL, NULL); 
            strRet[length] = '\0';
        }
    }

  3. #3
    kam
    kam est déconnecté
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 15
    Par défaut
    merci... ça marche.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 91
    Par défaut
    Juste pour remercier encore tout le monde pour votre aide.

    Cet fonction viens de resoudre 4 heures de recherche.

    Un grand Merci

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Bizarre ce code. Je pige pas pourquoi y'a un reinterpret_cast, et qui fait le delete ?
    Utilise _bstr_t:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _variant_t var; 
    Cstring nom = _bstr_t( var );
    exception _com_error en cas d'échec...

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo