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

Visual C++ Discussion :

J'ai un probl�me de typage


Sujet :

Visual C++

  1. #1
    Membre extr�mement actif
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2008
    Messages
    1 022
    D�tails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 1 022
    Par d�faut J'ai un probl�me de typage
    bonjour
    J'ai un probl�me de typage : J'ai d�clar� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    		unsigned long ulStart = 0;
    		System::Int32^ pStatus;
    		bool bWasMoved = false;
    		bool bIsMoved = false;
    je veux allouer pStatus � un type CAnalysedWordM par l'instruction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    pAnalysedWord->iExcluded = pStatus;
    mais j'ai un 1� message sur la ligne

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    		pListAnalysedWord = gcnew List<CAnalysedWordM^>();
    qui est :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    1>..\..\..\..\Linguistic\ParserManager\src\ParserManager.cpp(702): error C2440: '='*: impossible de convertir de 'System::Collections::Generic::List<T> ^' en 'System::Collections::Generic::List<T> ^'
    1>          with
    1>          [
    1>              T=SpecificationLoader::CAnalysedWordM ^
    1>          ]
    1>          and
    1>          [
    1>              T=SpecificationLoader::stAnalysedWordM ^
    1>          ]
    1>          Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1>          Les types pointés n'ont aucun rapport entre eux*; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    CAnalysedWordM est d�fini par
    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
    	public ref class CAnalysedWordM
    	{
    	public:
    		unsigned long long          ullWordID;               //  Identifiant du Word dans la base de données
    		unsigned long long          ullLemmaID;              //  Identifiant du Lemma dans la base de données
    		System::String^             wsWord;                   // Texte du mot
    		System::String^             wsLemma;                  // Texte du lemma
    		enPOSM                      POS;                      // Part Of Speech du lemma (et du mot)
    		enGenderM                   iGender;                  // Genre du lemma (et du mot)
    		enPersM                     iPers;                    // la Personne du mot
    		enNbrM                      iNbr;                     // le nombre du mot
    		System::String^             wsPronunciation;          // Prononciation du lemma (pour le japonais)
    		System::Int32^				iExcluded;                // La valeur du lemma est important ou non
    		int                         ValueOfWord;              // la valeur du mot pour l'alignement
    		unsigned long               ulStart;                  // Position du premier caractère du mot dans le segment
    		unsigned long               ulLength;                 // Longueur du mot (les espaces sont exclus)
    		int                         iWordOccurence;           // occurence du mot dans la BD
    		CAnalysedWordM()
    		{
    		}
    		~CAnalysedWordM()
    		{;}
    	};
    et l'allocation me sort un message d'erreur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    1>..\..\..\..\Linguistic\ParserManager\src\ParserManager.cpp(721): error C2440: '='*: impossible de convertir de 'System::Int32 ^' en 'int'
    1>          Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1>          Aucun contexte dans lequel cette conversion est possible
    celui qui m'orientera sera ;ccool:

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 503
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 503
    Par d�faut
    Comme d'hab. toutes les r�ponses sont dans les messages d'erreurs.

    ParserManager.cpp(702): error C2440: '='*: impossible de convertir de
    Vous essayez de mettre une List<CAnalysedWordM ^> dans une List<stAnalysedWordM ^>.

    On n'est plus � la maternelle, faut pas essayer de mettre des ronds dans des carr�s, �a marche pas.

    error C2440: '='*: impossible de convertir de 'System::Int32 ^' en 'int'
    Idem, un "int" non manag� peut avoir 8 bits comme 128, �tre sign� ou non, un Int32 est manag� donc mobile en m�moire et en plus il a une taille d�fini, lui.
    La conversion implicite n'a donc pas de sens.
    Castez explicitement votre Int32 en (int) si vous assumez tout ce bordel.

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Pourquoi utilises-tu un Int32 "mis en bo�te" sur le tas manag� (Int32^) au lieu de l'utiliser b�tement par valeur (Int32 tout court) ?
    Je n'en voie pas la raison.

    @bacelar: un int non-manag� est toujours 32 bits sous Windows, et en C++-CLI il me semble que c'est exactement le m�me type que System::Int32, comme en C# (en gros, int est un alias vers System::Int32). Le probl�me vient du fait que Int32^ n'est pas la m�me chose que Int32.
    (et d'ailleurs, n'a pas d'�quivalent en C# ou VB, o� un objet d'un type valeur "boxed" ne peut pas avoir d'autre type statique que System::Object^)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 6
    Dernier message: 25/02/2007, 17h56
  2. probl�me de typage
    Par sissi25 dans le forum Servlets/JSP
    R�ponses: 15
    Dernier message: 10/01/2007, 12h59
  3. [Typage] Probl�me avec typage de variables
    Par elitemedia dans le forum Langage
    R�ponses: 2
    Dernier message: 17/11/2006, 02h18
  4. [Tableaux] Probl�me de typage sur un float
    Par Lomu dans le forum Langage
    R�ponses: 1
    Dernier message: 06/11/2006, 11h47
  5. [SQL2005] probl�mes de typage de colonne en XML
    Par titouc330 dans le forum MS SQL Server
    R�ponses: 2
    Dernier message: 18/10/2006, 12h52

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