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 :

Primitive dont le type est ignoré


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 Primitive dont le type est ignoré
    bonjour,
    j'ai une déclaration de primitive qui est déclaré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	SynsetPtr findtheinfo_ds(char *searchstr, int dbase, int ptrtyp, int whichsense);
    et quand je l'adresse avec des int pour les paramètres 2 à 4
    j'ai le message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1>..\..\..\..\..\..\WordNet\src\lib\WnOver.cpp(37): error C2664: 'SpecificationLoader::findtheinfo_ds'*: impossible de convertir le paramètre 3 de 'char *[]' en 'int'
    1>          Aucun contexte dans lequel cette conversion est possible
    je voudrais bien savoir pourquoi il me dit ça; (J'ai vérifié que la methode etait partout défini de la même façon
    celui qui m'orientera sera

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    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 394
    Par défaut
    Peut-on voir l'appel, et la fonction qui contient celui-ci?
    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.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Le problème n'est pas la définition mais l'appel de la fonction à la ligne 37 de WnOver.cpp, non?

  4. #4
    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 Je vous met l'appel
    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
    	void WordNetOver( char* searchstr, std::list <mySynset*>* results)
    	{ // ligne 22
    		int pos;
    		int dbase;
    		int ptrtype;
    		int whichsense;
    		SynsetPtr synsetptr;
    		mySynset* synset;
     
    		for (pos = 1; pos <= NUMPARTS; pos++)
    		{	
    			synsetptr = findtheinfo_ds( searchstr, dbase, ptrtyp, whichsense);
    			synset->Word = searchstr;
    			synset->Definition = synsetptr->defn;
    			results->push_back( synset);
    		}
    	}
    };
    et la primitive :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    	SynsetPtr findtheinfo_ds(char *searchstr, int dbase, int ptrtyp, int whichsense)
    	{
    		static Index idx;
    		SynsetPtr cursyn;
    		SynsetPtr synlist = NULL, lastsyn = NULL;
    		int depth = 0;
    		int newsense = 0;
     
    		wnresults.numforms = 0;
    		wnresults.printcnt = 0;
    		while( ( &(idx = getindex( searchstr, dbase))))
    		{
    			searchstr = NULL;	/* clear out for next call */
    			newsense = 1;
    			if(ptrtyp < 0)
    			{
    				ptrtyp = -ptrtyp;
    				depth = 1;
    			}
    			wnresults.SenseCount[wnresults.numforms] = idx.off_cnt;
    			wnresults.OutSenseCount[wnresults.numforms] = 0;
    			wnresults.searchbuf = NULL;
    			wnresults.searchds = NULL;
    			/* Go through all of the searchword's senses in the
    			database and perform the search requested. */
    			for( sense = 0; sense < idx.off_cnt; sense++)
    			{
    				if( whichsense == ALLSENSES || whichsense == sense + 1)
    				{
    					cursyn = read_synset( dbase, idx.offset[sense], idx.wd);
    					if( lastsyn)
    					{
    						if( newsense)
    							lastsyn->nextform = cursyn;
    						else
    							lastsyn->nextss = cursyn;
    					}
    					if( !synlist)
    						synlist = cursyn;
    					newsense = 0;
    					cursyn->searchtype = ptrtyp;
    					cursyn->ptrlist = traceptrs_ds( cursyn, ptrtyp, getpos( cursyn->pos), depth);
    					lastsyn = cursyn;
    					if (whichsense == sense + 1)
    						break;
    				}
    			}
    			free_index( idx);
    			wnresults.numforms++;
    			if (ptrtyp == COORDS)
    			{	/* clean up by removing hypernym */
    				lastsyn = synlist->ptrlist;
    				synlist->ptrlist = lastsyn->ptrlist;
    				free_synset(lastsyn);
    			}
    		}
    		wnresults.searchds = synlist;
    		return(synlist);
    	}
     
    /* Recursive search algorithm to trace a pointer tree and return results
      in linked list of data structures. */
     
    	SynsetPtr traceptrs_ds(SynsetPtr synptr, int ptrtyp, int dbase, int depth)
    	{ // 1
    		int i;
    		SynsetPtr cursyn, synlist = NULL, lastsyn = NULL;
    		int tstptrtyp, docoords;
    		size_t len;
     
    		/* If synset is a satellite, find the head word of its
    		head synset and the head word's sense number. */
    		if( getsstype( synptr->pos) == SATELLITE)
    		{
    			for( i = 0; i < synptr->ptrcount; i++)
    			{
    				if (synptr->ptrtyp[i] == SIMPTR)
    				{
    					cursyn = read_synset( synptr->ppos[i], synptr->ptroff[i], "");
    					synptr->headword = new char [strlen(cursyn->words[0]) + 1];
    					assert(synptr->headword);
    					len = strlen( cursyn->words[0]);
    					strcpy_s( synptr->headword, len, cursyn->words[0]);
    					synptr->headsense = cursyn->lexid[0];
    					free_synset( cursyn);
    					break;
    				}
    			} //end for
    		}// end of if SATELLITE
    		if(	ptrtyp == COORDS)
    		{
    			tstptrtyp = HYPERPTR;
    			docoords = 1;
    		}
    		else
    		{
    			tstptrtyp = ptrtyp;
    			docoords = 0;
    		}
    		for( i = 0; i < synptr->ptrcount; i++)
    		{
    			if( ( synptr->ptrtyp[i] == tstptrtyp) && ((synptr->pfrm[i] == 0) || (synptr->pfrm[i] == synptr->whichword)))
    			{
    				cursyn = read_synset( synptr->ppos[i], synptr->ptroff[i], "");
    				cursyn->searchtype = ptrtyp;
    				if( lastsyn)
    					lastsyn->nextss = cursyn;
    				if( !synlist)
    					synlist = cursyn;
    				lastsyn = cursyn;
    				if( depth)
    				{
    					depth = depthcheck( depth, cursyn);
    					cursyn->ptrlist = traceptrs_ds(cursyn, ptrtyp, getpos( cursyn->pos), (depth+1));
    				}
    				else if( docoords)
    				{
    					cursyn->ptrlist = traceptrs_ds( cursyn, HYPOPTR, NOUN, 0);
    				}
    			}
    		}//end for
    		return( synlist);
    	}

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Billets dans le blog
    21
    Par défaut
    Il semble qu'il manque quelques bouts: sinon cela veut dire que tu passes à ta fonction les variables dbase, ptrtype et whichsense sans les avoir initialisées.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 394
    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 394
    Par défaut
    ptrtype est déclaré en int dans la fonction, mais où est déclaré ptrtyp? Est-ce une variable globale non-préfixée?
    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: 4
    Dernier message: 02/07/2008, 23h15
  2. Réponses: 2
    Dernier message: 05/03/2008, 16h12
  3. affichage du contenu dont le type est TEXT + date
    Par stardeus dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/06/2007, 18h17
  4. Réponses: 3
    Dernier message: 09/01/2007, 15h27
  5. Réponses: 4
    Dernier message: 05/06/2002, 14h35

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