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 :

Probl�me lecture string "AFX_IDS_UNTITLED"


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut Probl�me lecture string "AFX_IDS_UNTITLED"
    Bonjour � tous. J'ai un probl�me aux lignes de codes suivantes:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void CSingleDocTemplate::SetDefaultTitle(CDocument* pDocument)
    {
    	CString strDocName;
    	if (!GetDocString(strDocName, CDocTemplate::docName) ||
    		strDocName.IsEmpty())
    	{
    		// use generic 'untitled'
    		ENSURE(strDocName.LoadString(AFX_IDS_UNTITLED));
    	}
    	pDocument->SetTitle(strDocName);
    }
    Mon application plante au chargement de la string AFX_IDS_UNTITLED...
    Mon application tournait sous visual studio 2005 et ne pr�sentait aucun probl�me. Maintenant qu'elle tourne sous VS2008 avec les nouvelles MFC, ce bug apparait.

    AFX_IDS_UNTITLED est d�fini dans afxres.h.

    En steppant en mode debug, j'ai remarqu� que la fonction ::FindResource me renvoyait une r�ponse nulle.
    Je vous remercie d'avance pour vous id�es, solutions.

    Quelqu'un aurait une id�e?

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    le moyen le plus rapide d'y rem�dier est de rajouter cette entr�e dans ta string table ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Merci farscape pour ta r�ponse.

    Je ne suis pas sur d'avoir bien compris ta r�ponse, tu proposes de rajouter AFX_IDS_UNTITLED comme ID et laisser vide l'endroit du caption?

  4. #4
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    non ,apparemment la d�finition de cette string n''est pas dans la string table,
    ce que je propose c'est de la rajouter dans la tienne...
    tu vas dans tes ressources , sur la string table tu fais clic droit nouvelle chaine.
    sur l'identifiant tu fais double click et tu s�lectionnes:AFX_IDS_UNTITLED
    et tu remplis la l�gende...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Merci Farscape pour ta r�ponse,
    Quelque chose m'�chappe dans ce que tu dis. C'est bien rajouter l'ID dans les ressources que tu m'expliques (sorry j'ai le programme en anglais) parce qu'en faisant �a, la fonction va toujours chercher l'ID se trouvant dans les MFC... J'ai mis une photo en pi�ce jointe pour �tre sur que je fais ce que tu m'as dit.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Je suis un petit peu perdu, quelqu'un sait comment faire lire une AFX_IDS_UNTITLED dans la string table plutot que dans l'MFC?

  7. #7
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    ton probl�me est �trange...
    je viens de faire l'essai sur un projet r�gl� en US.
    je n'ai pas de probl�me sur un : LoadString(AFX_IDS_UNTITLED)
    ton fichier ressource est localis� en fran�ais ?
    comment tu as install� les nouvelles MFC ?
    tu as pass� le service pack 1 US ? ou tu as mis le pack en b�ta?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    oui c'est la derni�re version de Visual studio 2008. J'appelle les nouvelles MFC celles qui sont fournies par vs2008 lui-m�me, je n'ai rien fait de particulier l� dessus. Mon application tourne sur diff�rentes langues, et le probl�me ne se pose que pour la langue fran�aise... l'application n'a pas chang� d'un poil vis-�-vis de la version visual studio 2005 (mis � part les WINVER 0X500 au lieu de 400) qui, elle, tourne sans souci.
    ...

    Que faire?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Je viens de trouver un lien d'un gars qui a exactement le m�me probl�me que moi : http://www.codeguru.com/forum/printthread.php?t=349512

    A la fin il propose de modifier un param�tre li� � la d�finition pr�processing
    en ajoutant _AFXDLL...

    J'ai essay� mais cela ne change rien. Je ne suis pas bien s�r d'avoir compris cette manipulation d'ailleurs...

    Toute id�e est toujours la bienvenue.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Apr�s recherche je viens de me rendre compte d'un d�tail plut�t important.

    L'application plante uniquement avec la version fran�aise... parce que mon Windows est configur� en version fran�aise... sur une version anglaise, l'application plante en anglais...

    mon fichier rc contient :
    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
    // Microsoft Visual C++ generated resource script.
    //
    #include "..\resource.h"
     
    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #include "afxres.h"
     
    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
     
    /////////////////////////////////////////////////////////////////////////////
    // French (France) resources
     
    #if defined(AFX_TARG_FRA)
    #ifdef _WIN32
    LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
    #pragma code_page(1252)
    #endif //_WIN32
     
    /////////////////////////////////////////////////////////////////////////////
    //
    // Menu
    //
     
    IDR_MAINFRAME MENU 
    BEGIN...
    et c'est "LANGUAGE LANG_FRENCH" qui pose probl�me... en rempla�ant par LANG_FINNISH par exemple �a fonctionne tr�s bien (mais c'est en su�dois du coup ^^). Je remarque aussi que le fichier afxres.h(fichier qui d�fini AFX_IDS_UNTITLED) a bien �t� inclu avant d'utiliser les language...

    Un peu plus loin dans le code j'ai trouv� ceci qui a l'air souvent utilis� dans d'autres applications que la mienne...
    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
    #ifdef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //
     
    1 TEXTINCLUDE 
    BEGIN
        "..\\resource.h\0"
    END
     
    2 TEXTINCLUDE 
    BEGIN
        "#include ""afxres.h""\r\n"
        "\0"
    END
     
    3 TEXTINCLUDE 
    BEGIN
        "\r\n"
        "\0"
    END
     
    #endif    // APSTUDIO_INVOKED
    Farscape : en regardant toutes les ressources utilis�es par l'application j'ai remarqu� que AFX_IDS_UNTITLED est d�j� bien d�fini et pr�sent uniquement en read only... J'ai joint une photo pour mieux comprendre ce que j'explique (la photo est tronqu�e � l'info essentielle dans un soucis de place m�moire).

    Si quelqu'un � un commentaire � faire ou bien une id�e, elle serait vraiment la bienvenue.

    Merci, d'avance de vos r�ponses.

  11. #11
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    Regarde si tu disposes des versions fran�aises des ressources dans le r�pertoire de visual studio.
    exemple:
    \Microsoft Visual Studio 9.0\VC\atlmfc\include\l.fra
    \Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc\l.fra
    \Microsoft Visual Studio 9.0\VC\ce\atlmfc\include\l.fra

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Pour le dossier
    \Microsoft Visual Studio 9.0\VC\atlmfc\src\mfc\l.fra

    Je n'ai pas afxres.h de d�fini (contenant la string d�finie en fr).
    Ce dossier ne comporte que indicate.rc et prompts.rc...

    Pour les autres, il s'y trouve bien...

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par d�faut
    Tient apparemment le probl�me est r�gl�...

    J'ai remplac� � la fin du rc de langue fran�aise

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if defined(AFX_TARG_FRA)
    #ifdef _WIN32
    LANGUAGE 9, 1
    #pragma code_page(1252)
    #endif //_WIN32
    #include "res\Phoenix.rc2"  // non-Microsoft Visual C++ edited resources
    #include "l.fra\afxres.rc"         // Standard components
    #include "l.fra\afxprint.rc"       // printing/print preview resources
    #endif
     
     
    /////////////////////////////////////////////////////////////////////////////
    #endif    // not APSTUDIO_INVOKED
    LANGUAGE 9, 1 par LANGUAGE 12, 1...

    Je ne comprend pas tr�s bien la diff�rence entre ces deux bouts de code...

    Si quelqu'un peut m'�clairer, cela m'aiderait � savoir si cette modif est � valider ou � jeter au bac.

Discussions similaires

  1. Probl�me sur Request.ServerVariables("QUERY_STRING"
    Par PrinceMaster77 dans le forum ASP
    R�ponses: 3
    Dernier message: 25/03/2005, 11h47

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