none
J'ai une suite de messages du linker que je ne sais pas interprèter RRS feed

  • Question

  • bonjour. La compilation est terminé. Je travaille maintenant sur l'édition de liens :

    J'ai une série de messages que je ne sais pas interpréter :

    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> ; champs : comp) : (0x0400024c).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> ; champs : hash_fun) : (0x0400024d).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> ; champs : _Multi) : (0x0400024e).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0>) : (0x02000034).
    


    Jean Noël Martin

    • Type modifié Emile Supiot mercredi 12 août 2015 07:38
    • Type modifié JeanNoel53 samedi 5 septembre 2015 17:22
    mercredi 29 juillet 2015 10:37

Réponses

  • Je ne vois pas ou vous voulez en venir avec tout ces changement de type intempestif.

    cli::array est un type managé non ?

    Il est ou le "^" dans la déclaration de la variable senstemp ?

    Paul Bacelar, Ex - MVP VC++

    mardi 8 septembre 2015 17:07
    Modérateur

Toutes les réponses

  • mercredi 29 juillet 2015 12:34
    Modérateur
  • J'ai renommé le sens de SensTemporary en senstemp, mais ça na rien changé

    je me pose la question de la signature de la hashmap qui appelle dans les deux classes le même objet mySynset si ça peut justifier les messages. Si c'est le cas je serais obligé de définir deux structures mySynset. J'ai donc déclaré une structure mySynsetTemp, et j'y ai ajouté un champ mais ça n'a rien changé


    Jean Noël Martin





    • Modifié JeanNoel53 mercredi 29 juillet 2015 14:17
    mercredi 29 juillet 2015 13:39
  • Un certain nombre d'autre cas, avec les outils d'analyses qui vont avec :

    http://stackoverflow.com/questions/810827/lnk2022-metadata-operation-failed-driving-me-insane


    Paul Bacelar, Ex - MVP VC++

    mercredi 29 juillet 2015 15:01
    Modérateur
  • Je n'ai eu aucune information pertinente dans ce lien

    en outre j'ai découpé le fichier en deux classes et j'ai toujours le même problème

    comme j'ai dissocié les données je ne vois pas ce qui provoque cette rafale d'erreurs

    je vous met le fichier d'erreurs

    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> ; champs : comp) : (0x04000253).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> ; champs : hash_fun) : (0x04000254).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> ; champs : _Multi) : (0x04000255).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0>) : (0x02000034).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; champs : _Myhead) : (0x04000258).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; champs : _Mysize) : (0x04000259).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; champs : _Mygen) : (0x0400025a).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0>) : (0x02000037).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; champs : _Mylist) : (0x0400025e).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; champs : _Myvector) : (0x0400025f).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; champs : _Mygen) : (0x04000260).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; champs : _Mask) : (0x04000261).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; champs : _Maxidx) : (0x04000262).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; champs : _Max_load_factor) : (0x04000263).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> >) : (0x0200003b).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> ; champs : comp) : (0x04000253).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> ; champs : hash_fun) : (0x04000254).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> ; champs : _Multi) : (0x04000255).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0>) : (0x02000034).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; champs : _Myhead) : (0x04000258).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; champs : _Mysize) : (0x04000259).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; champs : _Mygen) : (0x0400025a).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0>) : (0x02000037).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; champs : _Mylist) : (0x0400025e).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; champs : _Myvector) : (0x0400025f).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; champs : _Mygen) : (0x04000260).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; champs : _Mask) : (0x04000261).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; champs : _Maxidx) : (0x04000262).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131188) : Déclarations de champs incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; champs : _Max_load_factor) : (0x04000263).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (801311D7) : Nombre différent de champs dans des types dupliqués (cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> >) : (0x0200003b).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; interfaces : System.Runtime.CompilerServices.CallConvStdcall) : (0x09000007).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; interfaces : System.IDisposable) : (0x09000008).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_base<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; interfaces : System.Runtime.CompilerServices.CallConvFastcall) : (0x09000009).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_base<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^,0> ; interfaces : System.Runtime.CompilerServices.CallConvThiscall) : (0x0900000a).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; interfaces : System.Runtime.CompilerServices.IsVolatile) : (0x0900000b).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<int,SpecificationLoader::mySynsetTemp ^,0> > ; interfaces : System.IDisposable) : (0x0900000c).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash_map_base0<int,SpecificationLoader::mySynsetTemp ^> ; interfaces : System.Runtime.CompilerServices.SuppressMergeCheckAttribute) : (0x0900000d).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash_map_base<int,SpecificationLoader::mySynsetTemp ^> ; interfaces : System.Runtime.CompilerServices.CallConvFastcall) : (0x0900000e).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash_map_base<int,SpecificationLoader::mySynsetTemp ^> ; interfaces : System.Runtime.CompilerServices.CallConvThiscall) : (0x0900000f).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; interfaces : System.Runtime.CompilerServices.CallConvStdcall) : (0x09000007).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_impl<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; interfaces : System.IDisposable) : (0x09000008).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_base<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; interfaces : System.Runtime.CompilerServices.CallConvFastcall) : (0x09000009).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.list_base<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^,0> ; interfaces : System.Runtime.CompilerServices.CallConvThiscall) : (0x0900000a).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; interfaces : System.Runtime.CompilerServices.IsVolatile) : (0x0900000b).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash<cliext::impl::hash_map_traits<System::String ^,SpecificationLoader::mySynset ^,0> > ; interfaces : System.IDisposable) : (0x0900000c).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash_map_base0<System::String ^,SpecificationLoader::mySynset ^> ; interfaces : System.Runtime.CompilerServices.SuppressMergeCheckAttribute) : (0x0900000d).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash_map_base<System::String ^,SpecificationLoader::mySynset ^> ; interfaces : System.Runtime.CompilerServices.CallConvFastcall) : (0x0900000e).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118B) : Interfaces implémentées incohérentes dans des types dupliqués (types : cliext.impl.hash_map_base<System::String ^,SpecificationLoader::mySynset ^> ; interfaces : System.Runtime.CompilerServices.CallConvThiscall) : (0x0900000f).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext._Dehandle<int>) : (0x02000030).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext.is_handle<int>) : (0x02000031).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext._Dehandle<SpecificationLoader::mySynsetTemp ^>) : (0x02000032).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext.is_handle<SpecificationLoader::mySynsetTemp ^>) : (0x02000033).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext._Dehandle<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^>) : (0x02000035).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext.is_handle<Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynsetTemp ^> ^>) : (0x02000036).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext._Dehandle<System::String ^>) : (0x02000030).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext.is_handle<System::String ^>) : (0x02000031).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext._Dehandle<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^>) : (0x02000035).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (8013118D) : Informations de disposition incohérentes dans des types dupliqués (cliext.is_handle<Microsoft::VisualC::StlClr::GenericPair<System::String ^,SpecificationLoader::mySynset ^> ^>) : (0x02000036).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131195) : Les attributs personnalisés ne sont pas cohérents : (0x0c000026).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131195) : Les attributs personnalisés ne sont pas cohérents : (0x0c000029).
    1>DictTemp.obj : error LNK2022: échec de l'opération sur les métadonnées (80131195) : Les attributs personnalisés ne sont pas cohérents : (0x0c00002b).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131195) : Les attributs personnalisés ne sont pas cohérents : (0x0c000027).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131195) : Les attributs personnalisés ne sont pas cohérents : (0x0c000028).
    1>Dictionnaire.obj : error LNK2022: échec de l'opération sur les métadonnées (80131195) : Les attributs personnalisés ne sont pas cohérents : (0x0c00002b).
    


    Jean Noël Martin


    • Modifié JeanNoel53 mercredi 29 juillet 2015 17:40
    mercredi 29 juillet 2015 15:14
  • je vous met les sources car c'est là que se trouve l'origine :

    D'abord les types mySynset et mySynsetTemp

    	ref struct mySynsetTemp
    	{
    		int Number;
    		int Frequence;
    		int Identifier;
    		int pos;
    		float Value;
    		System::String^ Word;
    		System::String^ Definition;
    		int Temp;
    	};
    	
    	ref struct mySynset
    	{
    		int Number;
    		int Frequence;
    		int Identifier;
    		int pos;
    		float Value;
    		System::String^ Word;
    		System::String^ Definition;
    	};
    

    puis la classe dictionnaire, Include et code

    l'include :

    #ifndef _DICTIONNAIRE_H
    #define _DICTIONNAIRE_H
    //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    namespace SpecificationLoader
    { // 0 ligne 8
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Collections::Generic;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace std;
    //ligne 18
    
    
    	ref class  SensDictionnary
    // ligne 22
    	{ // 1
    	public:
    		cliext::hash_map< System::String^, mySynset^>^ sens; //ligne 25
            SensDictionnary::SensDictionnary();
            SensDictionnary::~SensDictionnary();
    		bool SensDictionnary::isKnown( System::String^ word);
    		void SensDictionnary::reset();
    		SensDictionnary::SensDictionnary( char* FileName);
            int SensDictionnary::SaveSens( char*);
            mySynset^ SensDictionnary::getSens( System::String^);
            bool SensDictionnary::addSens( System::String^, mySynset^);
            void SensDictionnary::updateSens( System::String^ word, mySynset^ pSynset);
            void SensDictionnary::remove( System::String^);
            System::String^ toString();
            System::String^ keyListString();
    	}; // 1
    // ligne 40
    };
    #endif

    puis le code:

    /*---------------------------------------------------------------*/ // ligne1
    /* Global conception    : 05-23-2003 ; 11:50:52                  */
    /* Specification        : 03-26-2003 ; 14:35:29                  */
    /* ALITEC                                                        */
    /* Laval Technopole  - B.P. 0102                                 */
    /* 53001 LAVAL CEDEX  (c) Copyright AL4TEC                 V 0.2 */
    /*---------------------------------------------------------------*/
    /*******************************************************************************
     * NOM:                 Jean Noel Martin
     * ROLE:
     * HISTORIQUE:
        * 05/05/2001, xxx, initial version
    *******************************************************************************/ //li 13
    
    #include "stdafx.h"
    #include "Macro.h"
    #include "AlignStructure.h"
    #include "EnumerationM.hpp"
    #include "StructureM.h"
    #include "WfStream.h"
    #include "StrConv.h"
    #include "Dictionnaire.h"
    // ligne 23
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Collections::Generic;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace std;
    //------------------------------------------------------------------------------ ligne 35
    
    //----------- METHOD IMPLEMENTATION OF SensDictionnary Class -------------------
    
    	SensDictionnary::SensDictionnary() {}
    	SensDictionnary::~SensDictionnary() {}
    //------------------------------------------------------------------------------ ligne 41
    	bool SensDictionnary::isKnown( System::String^ word)
    	{
    		System::String^ w = word;
    		if(sens->find( w) == sens->end())
    		{
    			return false;
    		}
    		else
    		{
    			return true;
    		}
    	}
    //------------------------------------------------------------------------------ ligne 54
    	void SensDictionnary::reset()
    	{
    		sens->clear();
    	}
    
    	SensDictionnary::SensDictionnary( char* FileName)
    	{
    		const wchar_t* str = CStrConv::ambstowcs( FileName);
    		FILE* InFile = CWfStream::open( (const wchar_t*)str, L"r+", 666);
    		CStrConv::StrFreeW( (wchar_t*)str);
    		System::String^ wsText = this->toString();
    		CWfStream::getline( InFile, wsText);
    		CWfStream::close();
    	}
    
    //------------------------------------------------------------------------------ ligne 70
    	int SensDictionnary::SaveSens( char *filename)
    	{
    		const wchar_t* str = CStrConv::ambstowcs( filename);
    		FILE* OutFile = CWfStream::open( (const wchar_t*)str, L"r+", 666);
    		CStrConv::StrFreeW( (wchar_t*)str);
    		if( OutFile != nullptr)	
    		{		
    			System::String^ wsText = this->ToString();
    			CWfStream::writeline( OutFile, wsText);
    			return( 0);
    		}
    		else
    			return( -1);
    	}
    
    //------------------------------------------------------------------------------  ligne 86
    	mySynset^ SensDictionnary::getSens( System::String^ word)
    	{
    		return sens[word];
    	}
    //------------------------------------------------------------------------------ ligne 91
    	bool SensDictionnary::addSens( System::String^ word, mySynset^ syns)
    	{
    		if(sens->count(word) > 0)
    		{
    			return false;
    		}
    		else
    		{
    			sens[word] = syns;
    			return true;
    		}
    	}
    //------------------------------------------------------------------------------ ligne 104
    	void SensDictionnary::remove( System::String^ word)
    	{
    		sens->erase(word);
    	}
    //------------------------------------------------------------------------------ ligne 109
    	void SensDictionnary::updateSens( System::String^ word, mySynset^ pSynset)
    	{
    		sens[word] = pSynset;
    	}
    
    	System::String^ SensDictionnary::toString()
    	{
    		System::String^ str;
    		Microsoft::VisualC::StlClr::GenericPair<System::String^, mySynset^>^ el;
    
    		for each( el in sens)
    		{
    			str = el->first;
    			str += "\t";
    			str += el->second->Number;
    			str += "\t";
    			str += el->second->Frequence;
    			str += "\t";
    			str += el->second->Identifier;
    			str += "\t";
    			str += el->second->pos;
    			str += "\t";
    			str += el->second->Value;
    			str += "\t";
    			str += el->second->Word;
    			str += "\t";
    			str += el->second->Definition;
    			str += "\n" ;
    		}
    		return( str);
    	}
    //------------------------------------------------------------------------------ ligne 141
    	System::String^ SensDictionnary::keyListString()
    	{
    		System::String^ str;
    		Microsoft::VisualC::StlClr::GenericPair<System::String^, mySynset^>^ el;
    
    		for each( el in sens)
    		{
    			str += L"'";
    			str += el->first;
    			str += L"' ";
    		}
    		return str;
    	}
    //------------------------------------------------------------------------------ ligne 155
    };


    enfin la classe TempDict

    l'include :

    #ifndef _DICT_TEMP_H
    #define _DICT_TEMP_H
    //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    //------------------------------------------------------------------------------
    namespace SpecificationLoader
    { // 0 ligne 8
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Collections::Generic;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace std;
    //ligne 18
    
    	ref class  SensTemporary
    	{ // 1 li 42  
    	public:// li 43
    		cliext::hash_map< int, mySynsetTemp^>^ senstemp; 
            SensTemporary::SensTemporary();
            SensTemporary::~SensTemporary();
    // ligne 47
    		mySynsetTemp^ SensTemporary::getSens( System::Int32 id);
    		void SensTemporary::updateSens( System::Int32 id, mySynsetTemp^ pSynset);
            void SensTemporary::remove( System::Int32 id);
            bool SensTemporary::addSens( System::Int32 id, mySynsetTemp^ pSynset);
            bool SensTemporary::isExist(System::Int32 id);
    	}; // 1
    	//------------------------------------------------------------------------------ ligne 54
    }; // 0
    #endif
    

    et le source :

    /*---------------------------------------------------------------*/ // ligne1
    /* Global conception    : 05-23-2003 ; 11:50:52                  */
    /* Specification        : 03-26-2003 ; 14:35:29                  */
    /* ALITEC                                                        */
    /* Laval Technopole  - B.P. 0102                                 */
    /* 53001 LAVAL CEDEX  (c) Copyright AL4TEC                 V 0.2 */
    /*---------------------------------------------------------------*/
    /*******************************************************************************
     * NOM:                 Jean Noel Martin
     * ROLE:
     * HISTORIQUE:
        * 05/05/2001, xxx, initial version
    *******************************************************************************/ //li 13
    
    #include "stdafx.h"
    #include "Macro.h"
    #include "AlignStructure.h"
    #include "EnumerationM.hpp"
    #include "StructureM.h"
    #include "WfStream.h"
    #include "StrConv.h"
    #include "TempDict.h"
    // ligne 23
    namespace SpecificationLoader
    {
        using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Collections::Generic;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
    	using namespace Microsoft::VisualC::StlClr;
    	using namespace std;
    	
    	SensTemporary::SensTemporary() {}
    	SensTemporary::~SensTemporary() {}
    //------------------------------------------------------------------------------ ligne 158
    	mySynsetTemp^ SensTemporary::getSens( System::Int32 id)
        {
    		return senstemp[ id];;                                                       //ligne 161
    	}
    //------------------------------------------------------------------------------ ligne 163    
    	void SensTemporary::remove( System::Int32 id)
        {
             senstemp->erase(id);
        }
        void SensTemporary::updateSens( System::Int32 id, mySynsetTemp^ pSynset)
        {
            senstemp[id] = pSynset;
        }
    
        bool SensTemporary::isExist(System::Int32 id)
        {
            int i;
            i = senstemp->count(id);
    		if( i > 0)
            {
    			return true;
    		}
    		else
            {
    			return false;
    		}
    	}
    
    	bool SensTemporary::addSens( System::Int32 id, mySynsetTemp^ pSynset)
        {
            int i;
    
            i = senstemp->count(id);
    		if( i > 0)
            {
    			return false;
    		}
    		else
            {
    			senstemp[i] = pSynset;
    			return true;
    		}
    	}
    };
    
    
    

    J'ai discocié tous les types et les décarations. Tout vient de cliext::has_map


    Jean Noël Martin

    jeudi 30 juillet 2015 06:19
  • J'ai repris ce dossier au retours de vacances

    J'ai pris comme option de changer le type de mySynset:

    J'ai déclaré

    		array <Microsoft::VisualC::StlClr::GenericPair< System::Int32, mySynset^>^, 1> senstemp; 

    pour pouvoir satisfaire l'index de:

    senstemp[ id];

    mais cette déclaration pose un problème que je ne comprends pas:

    >d:\usr\specification loaderv4.1\dev\aln_kernel\make\specificationloader\specificationloader\TempDict.h(23): error C3149: 'cli::array<Type,dimension>' : impossible d'utiliser ce type ici sans '^' de niveau supérieur
    1>          with
    1>          [
    1>              Type=Microsoft::VisualC::StlClr::GenericPair<int,SpecificationLoader::mySynset ^> ^,
    1>              dimension=1
    1>          ]

    Jean Noël Martin

    samedi 5 septembre 2015 17:23
  • Je ne vois pas ou vous voulez en venir avec tout ces changement de type intempestif.

    cli::array est un type managé non ?

    Il est ou le "^" dans la déclaration de la variable senstemp ?

    Paul Bacelar, Ex - MVP VC++

    mardi 8 septembre 2015 17:07
    Modérateur
  • mySynset^>^

    mais ça marche mieux avec un chapeau de plus

    		array <Microsoft::VisualC::StlClr::GenericPair<System::String^, SpecificationLoader::mySynset^>^,1>^ sens; //ligne 25
    


    Jean Noël Martin


    samedi 12 septembre 2015 03:26