issam000000
Messages postés2Date d'inscriptiondimanche 18 janvier 2009StatutMembreDernière intervention20 janvier 2009
-
20 janv. 2009 à 09:54
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024
-
20 janv. 2009 à 17:39
bonjour ,
je suis débutant en programmation , je arrive pas a résoudre cette erreur , quand je compile tout ce passe bien , 0 erreur 0 avertissement , mais quand je debug .ca me sort deux erreurs :
1>main().obj : error LNK2019: symbole externe non résolu "int __cdecl Acquisition_Ajoute(struct Personne *,unsigned int)" (?Acquisition_Ajoute@@YAHPAUPersonne@@I@Z) référencé dans la fonction _main
1>C:\Documents and Settings\issam\Bureau\tp C\tp\tp7\Debug\tp7.exe : fatal error LNK1120: 1 externes non résolus
if (Acquisition_Ajoute(Annuaire,n))
{
printf("%s %d",Annuaire->nom,Annuaire->num);
}
}
int Acquisition_Ajoute (Personne*Annuaire,size_t *n)
{
char tmp[100];
do
{
printf ("Saisie du nom moin de 100 caracteres\n");
_flushall();
fgets(tmp,sizeof(tmp),stdin);
Annuaire->nom = (char*)malloc(((strlen(tmp))+1)* sizeof(char));
strcpy_s((Annuaire->nom),strlen(tmp)+1,tmp);
printf ("Saisie du num\n");
_flushall();
scanf_s("%d",&(Annuaire->num));
if (!( strlen (Annuaire->nom)<101 && Annuaire->num>0 ) )
{
return 0;
free(Annuaire);
printf ("Nom ou Numero incorrect \n(Nom ne depassant pas 100 caracteres et numero de telephone et un nombre positif \n");
}
else
*n++;
return 1;
}while (!( strlen (Annuaire->nom)<101 && Annuaire->nom >0 ) );
}
void Tri (Personne *Annuaire)
{
unsigned int i=0;
char tmp[100];
for (i=0 ; i<n ; i++)
{
if (strcmp (Annuaire[i].nom, Annuaire[i+1].nom) < 0)
{
strcpy_s (tmp,strlen(Annuaire[i].nom)+1,Annuaire[i].nom);
strcpy_s (Annuaire[i].nom,strlen(Annuaire[i+1].nom)+1,Annuaire[i+1].nom);
strcpy_s (Annuaire[i+1].nom,strlen(tmp)+1,tmp);
}
}
}
j'ai déja cherché dans les discution ici , j'ai trouvé un tuto qui montre comment configurer visual basic 2005 pour les application console, j'ai suivi tout ce qu'il ya dedans , mais ca na pas marché . aucun changement. j'ai les meme erreurs merci pour votre aide .
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 20 janv. 2009 à 11:43
Hello,
D'un côté, tu déclare un paramètre en size_t et de l'autre size_t*
Petite étourderie je pense.
Et puis je pense qu'à la place de Visual Basic, tu voulais dire Visual Studio...
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
issam000000
Messages postés2Date d'inscriptiondimanche 18 janvier 2009StatutMembreDernière intervention20 janvier 2009 20 janv. 2009 à 17:35
salut bruno tu veux dire quoi par de l'autre ?? sur la fontion tri j'ai voulu cree un poiteur sur n . qui me permet de changer la valeur de n . cette valeur sera effectivement changé apres la fin de la fonction , ou je me trompe peut etre?
oui Je voulais dire Visual studio 2005 en effet.
si je me trompe comment je peut faire pour changer la valeur de n dans une fonction. sachant que c pas la valeur que je veux renvoyé.
BunoCS
Messages postés15475Date d'inscriptionlundi 11 juillet 2005StatutModérateurDernière intervention23 avril 2024103 20 janv. 2009 à 17:39
Il faut que les 2 prototypes aient la même forme.
Au dessus du main, tu as mis: int Acquisition_Ajoute (Personne*Annuaire,size_t);
En dessous, tu as mis: int Acquisition_Ajoute (Personne*Annuaire,size_t *n)
Dans ton cas, il faut une étoile dans les 2.
@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...