none
std::wstring non reconu comme membre du domaine std RRS feed

  • Question

  • Bonjour

    Suite au problème d'initialisation, je reconstruit un projet à partir de zéro

    J'ai crée un nouveau projet: il s'exécute.

    J'ai ajoute les forms OpenAFile et MainMenue

    et la à la compilation il ne reconnait plus le type std::wstring ainsi

    using namespace std;
    extern std::wstring wsFileToOpen;

    déclenche les messages d'erreur suivants:

    1>d:\usr\memoria\dev\aln_kernel\make\specificationloader\specificationloader\OpenAFile.h(5): error C2039: 'wstring' : n'est pas membre de 'std'
    1>d:\usr\memoria\dev\aln_kernel\make\specificationloader\specificationloader\OpenAFile.h(5): error C2146: erreur de syntaxe : absence de ';' avant l'identificateur 'wsFileToOpen'
    1>d:\usr\memoria\dev\aln_kernel\make\specificationloader\specificationloader\OpenAFile.h(5): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
    1>d:\usr\memoria\dev\aln_kernel\make\specificationloader\specificationloader\OpenAFile.h(5): error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut

    Je m'arrache les cheveux: je suis revenu au départ avec de nouveaux problèmes technologiques qui sont vraiment débiles? J'ai continuer à  avancer pas a pas la première fenêtre s'affiche. j'ai mis en commentaire les références aux std::wstring. Peut être que le problème de mauvais démarrage vient du fichier AssemblyInfo. Je vais vérifier. Il était aussi dans la distribution du projet qui a révélé le problème d''exécution.

    Mais ce problème a disparu après l'ajour de 11 fichiers


    Jean Noël Martin



    • Modifié JeanNoel53 samedi 8 septembre 2012 18:13
    samedi 8 septembre 2012 10:06

Réponses

  • finalement il faut répéter les directives qui sont dans StdAfx.h pour avoir des std::wstring et des st::list

    ainsi il faut avoir:

    #include <string>
    #include <iostream>
    using namespace std;

    ou #include <list>

    et la suite

    il faut notamment veiller a ce que le fichier AfxStd.h soit bien rempli


    Jean Noël Martin


    • Marqué comme réponse JeanNoel53 jeudi 13 septembre 2012 12:38
    • Modifié JeanNoel53 vendredi 14 septembre 2012 07:44
    jeudi 13 septembre 2012 12:38

Toutes les réponses

  • et donc comme le problème a disparu après l'introduction du code suivant j’arrête ce post.

    en fait il provient du choix que le projet ne soit pas CLR

    Ce fait n'est pas suffisant. Je crois qu'il faut que le code généré établisse les liens lui même.

    Je conclue que ce problème est du fait de la non génération de la maquette qui recopiait des fichiers de l'implémentation précédente, ce qui rompt les bases de données associées à Visual Studio.

    Mais ce problème réapparait avec une bonne configuration. Je vais d'abord regarder StdAfx.h. il n'accepte pas le fichier d'include "wstrng.h" il y a un référence dans string.h et le problème perdure.


    Jean Noël Martin






    • Marqué comme réponse JeanNoel53 samedi 8 septembre 2012 18:16
    • Non marqué comme réponse JeanNoel53 mercredi 12 septembre 2012 12:23
    • Marqué comme réponse JeanNoel53 mercredi 12 septembre 2012 14:53
    • Non marqué comme réponse JeanNoel53 jeudi 13 septembre 2012 06:49
    • Modifié JeanNoel53 jeudi 13 septembre 2012 07:02
    samedi 8 septembre 2012 18:16
  • J'ai régénéré la maquette avec succès, mais le problême std:wstring continue à apparaitre, et pas seulement dans le module OpenAFile, mais aussi dans un module qui avait été compilé avec succès dans la précédente phase de la migration. Comment dire a VS que std::wstring est membre du domaine std?

    Jean Noël Martin

    jeudi 13 septembre 2012 12:24
  • finalement il faut répéter les directives qui sont dans StdAfx.h pour avoir des std::wstring et des st::list

    ainsi il faut avoir:

    #include <string>
    #include <iostream>
    using namespace std;

    ou #include <list>

    et la suite

    il faut notamment veiller a ce que le fichier AfxStd.h soit bien rempli


    Jean Noël Martin


    • Marqué comme réponse JeanNoel53 jeudi 13 septembre 2012 12:38
    • Modifié JeanNoel53 vendredi 14 septembre 2012 07:44
    jeudi 13 septembre 2012 12:38
  • Ne serait-ce tout simplement qu'un problème de génération des pre-compiled headers ainsi que de configuration du projet ?

    Click droit sur le projet dans l'explorateur de solution -> Propriétés -> Propriétés de configuration -> Général -> Jeu de caractères


    Paul Bacelar, Ex - MVP VC++

    mercredi 19 septembre 2012 16:46
    Modérateur
  • C'était un problème de génération de AfxStd.h

    Jean Noël Martin

    jeudi 20 septembre 2012 08:18
  • Pour info, "AfxStd.h" est le conteneur des pré-compiled headers.

    Paul Bacelar, Ex - MVP VC++

    jeudi 20 septembre 2012 08:25
    Modérateur