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 :

[VC++] Problème de conversion


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut [VC++] Problème de conversion
    Bonjour ,

    J'ai vu ta fonction : BSTRtoASC, je voudrais savoir si tu as un exemple comment l'appeler parce que j'ai tj un message d'erreur.

    Je voudrais savoir si j'ai bien compris ta fonctionne , est ce que je peux composer des caractéres une chaine de caractère de type CString? si oui as-tu une idée?

    si ma variable est definit comme tel : LPWSTR str , est ce que je peux utiliser ASCtoBSTR?

    Excuses-moi pour toutes ces questions, mais j'ai encore le problème de la conversion de Unicode-->CString alors je me suis dit si je peux faire Unicode--> Char-->chaine de caractères de type CString. et ensuite faire le contraire, aller de CString-->Unicode.

    Merci bcp

    Mirna

    Merci encore

  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
    salut,

    cette fonction sert comme indiqué à convertir un BSTR en char *. Bien entendu, on peut s'en inspirer pour effectuer une conversion wchar_t vers char *, dans l'optique de convertir une chaine en unicode en une chaine ascii

    mais peut-etre pas à utiliser telle quelle

    Pourrais-tu préciser ce que tu veux convertir et en quoi, avec un exemple de quoi, et les erreurs (ou le mauvais comportement)

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Merci Nico pour ta réponse,

    Voici la situation:

    Je lis un fichier Enhanced MetaFile, qui contient un record:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    typedef struct tagENHMETARECORD { // enmr 
     
        DWORD iType; 
     
        DWORD nSize; 
     
        DWORD dParm[1]; 
     
    } ENHMETARECORD;
    Members
    iType
    Specifies the record type.

    nSize
    Specifies the size of the record, in bytes.

    dParm
    Specifies an array of parameters passed to the GDI function identified by the record.
    lorsque le iType = EMR_EXTTEXTOUTW alors c'est une pharse

    dParm[17]: contient ma phrase a changé.

    j'arrive a ecrire dans le fichier Metafile en utilisant ta fonction ASCtoBSTR, mais je n'arrive pas à lire ce qui existe dans le fichier pour remplacer la valeur.

    Je sais que mon affaire est trop compliqué , mais je tourne vraiment dans un rond

    Merci encore pour ton aide

    Mirna


  4. #4
    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
    faudrait pas plutot utiliser les api dédiées ? genre CopyEnhMetaFile, CreateEnhMetaFile, SetEnhMetaFileBits, etc ...

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Nico,

    Mon EMF existe déjà ce que je dois faire c'est un changement de valeur.

    Je ne sais pas si je dois recréer mon EMF à partir de celui existant:

    dans mon fichier initial de EMF: j'ai comme suit:

    Nom: ND_NOM
    Date: ND_DATE.

    Ce que je dois faire dans mon code est de remplacer la valeur ND_NOM par un valeur qui vienne d'une BD, et de meme pour date. alors mon fichier sera:

    Nom: Mirna
    Date: 12-12-2006

    Voilà, alors je ne sais pas si les api dédiées, peuvent resoudre le problème, parce que je suis obligée de savoir le contenu pour remplacer avec la bonne variable...

    Merci encore c'est apprécié

    Mirna

  6. #6
    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
    ben, j'en sais rien

    comment fais-tu l'écriture ? et quelle est l'erreur quand tu veux lire ?

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Pour écrire,

    J'utilise le code suivant:
    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
     
    const ENHMETARECORD *emr;
    LPWSTR str = (LPWSTR)& emr->dParm[17];
    char t1[] = "METAFILE";
    BSTR test1;
    ASCtoBSTR(t1, &test1);
    str = test1;
    ExtTextOutW(hdc,		//
    		x, 	// Coordonnée x du text
    		y,	//Coordonnée y du text
    	 	flags, 	// Paragraphe
    		NULL, 	//
    		str, 	// text
    		count, 	// nombre de caractère
                           /* lpDx */ NULL); 	//
    Merci

    Mirna

    c'est quand meme beaucoup plus clair avec les balises, merci d'y penser [nico-pyright(c)]

  8. #8
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Excuses-moi pour toutes ces questions, mais j'ai encore le problème de la conversion de Unicode-->CString alors je me suis dit si je peux faire Unicode--> Char-->chaine de caractères de type CString. et ensuite faire le contraire, aller de CString-->Unicode.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    {
           CStringW wstr = L"Chaîne UNICODE";
    	CStringA str(wstr);  // convertit en ANSI
    	LPCSTR lpcstr = str;
    	AfxMessageBox(lpcstr);
    }
    // ou
    {
    	CComBSTR bstr = L"Chaîne UNICODE";
    	CStringA str(bstr); // convertit en ANSI
    	LPCSTR lpcstr = str;
    	AfxMessageBox(lpcstr);
    }
    // ou
    {
    	CStringA str = "Chaîne ANSI";
    	CStringW wstr(str); // convertit en UNICODE
    	LPCWSTR lpcwstr = wstr;
    }
    // ou
    {
    	CStringA str = "Chaîne ANSI";
    	CComBSTR bstr(str); // convertit en UNICODE
    	BSTR b = bstr;
    }
    // a sample
    {
    	GUID guid;
    	::CoCreateGuid(&guid);  // j'obtient un GUID
    	CComBSTR bstrGuid(guid); // je convertit en UNICODE
    	CStringA strGuid(bstrGuid);  // Je convertit en ANSI
    	AfxMessageBox(strGuid);	 // et j'affiche
    	AfxMessageBox(CStringA(CComBSTR(guid))); // ou bien...
    }

  9. #9
    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
    t'as le droit aux mfc ?

  10. #10
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Par défaut
    Merci Gabrielly,

    Je veux regarder ..

    Oui Nico je travaille en MFC... J'ai pu utiliser ta fonction BSTRtoASC et j'ai pu lire la chaine de mon fichier Metafile. maintenant je dois l'avoir la chaine en type CString pour valider la valeur....

    Mirna

  11. #11
    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
    si tu travailles avec les MFCs, mieux vaut partir dans l'optique de classes qui font le travail, en rejoignant la proposition de gabrielly

Discussions similaires

  1. problème de conversion de dimension dans BUSINESS OBJECT
    Par greatmaster1971 dans le forum Deski
    Réponses: 4
    Dernier message: 28/04/2014, 13h15
  2. - [CAST ou CONVERT] Problème de conversion de date
    Par Boublou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/07/2004, 14h31
  3. Problème de conversion 3DS->.X
    Par JBernn dans le forum DirectX
    Réponses: 5
    Dernier message: 08/04/2004, 19h08
  4. Problème de conversion unicode
    Par djmalo dans le forum C
    Réponses: 5
    Dernier message: 09/03/2004, 11h48
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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