DakM
Messages postés65Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention25 juin 2010
-
29 mars 2005 à 01:35
DakM
Messages postés65Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention25 juin 2010
-
29 mars 2005 à 20:18
Bonsoir
dans main.cpp jai:
if (player_exist(nick))
{
count << "player exist";.
}
la fonction player_exist se trouve dans game.cpp:
bool player_exist(char* player)
{
FILE *file;
char* c = "Players\";
char* x = "\\MKPL.DO";
strcat(c,player);
strcat(c,x);
if((file = fopen(c,"r")) != NULL)
{
return 1;
}
else
{
return 0;
}
}
et VC6 me sort:
Compiling...
game.cpp
Linking...
LIBCD.lib(crt0init.obj) : warning LNK4098: defaultlib "libc.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 mars 2005 à 09:29
strcat(c,player);
chainer sur une constante, c'est le crash assuré. Faut écrire dans un buffer, jamais sur une constante.
Va cocher NODEFAULTLIB dans les options du linker, tu verras bien si convient.
DakM
Messages postés65Date d'inscriptionjeudi 20 janvier 2005StatutMembreDernière intervention25 juin 2010 29 mars 2005 à 19:03
BruNews tu me dis "chainer sur une constante, c'est le crash assuré. Faut écrire dans un buffer, jamais sur une constante.
"
mais ke je mete (const)(char*)nick dans le 2em exemple ou la constante (char*) n sa reviens toujours a un bug que windows menvoi apres la compil
ps: jai jms fé de c++ :)
I'm a killing Master
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 mars 2005 à 19:23
char* c = "Players\";
strcat(c,player);
tu ne peux pas chainer sur c, tu écraserais ce qui se trouve derriere dans le registre .data, faut copier ailleurs.
char* c = "Players\";
char buf[200]; // un multiple de 4 svp et que soit assez grand pour tout contenir
strcpy(buf, c);
strcat(buf,player);
la compil n'entre pour rien ici, tu aurais eu le crash à l'exécution.