C++ / VC6 - Probleme de fonctions..

DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010 - 29 mars 2005 à 01:35
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 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

main.obj : error LNK2001: unresolved external symbol "bool __cdecl player_exist(char *)" (?player_exist@@YA_NPAD@Z)

Debug/aRPG.exe : fatal error LNK1120: 1 unresolved externals

Error executing link.exe.



aRPG.exe - 2 error(s), 1 warning(s)


si quelquun peut mexpliker aussi pourquoi cette erreur surviens toujour svp

//suicide :X



merci bonne nuit =)



I'm a killing Master

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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.

ciao...
BruNews, MVP VC++
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
29 mars 2005 à 18:30
BruNews tres interessant ceci mais quand je coche cette fameuse case voici le debug:
Linking...
main.obj : error LNK2001: unresolved external symbol __chkesp
utils.obj : error LNK2001: unresolved external symbol __chkesp
main.obj : error LNK2001: unresolved external symbol "class ProSock __cdecl CreateProSocket(void (__cdecl*)(class ProSock *,int))" ([mailto:?CreateProSocket@@YA?AVProSock@@P6AXPAV1@H@Z@Z ?CreateProSocket@@YA?AVProSock@@P6AXPAV1@H@Z@Z])
main.obj : error LNK2001: unresolved external symbol __chkstk
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall ProSock::SockOpen(char *,int)" ([mailto:?SockOpen@ProSock@@QAEXPADH@Z ?SockOpen@ProSock@@QAEXPADH@Z])
main.obj : error LNK2001: unresolved external symbol _printf
main.obj : error LNK2001: unresolved external symbol "bool __cdecl player_exist(char *)" ([mailto:?player_exist@@YA_NPAD@Z ?player_exist@@YA_NPAD@Z])
main.obj : error LNK2001: unresolved external symbol _strlwr
main.obj : error LNK2001: unresolved external symbol _strlen
utils.obj : error LNK2001: unresolved external symbol _strlen
main.obj : error LNK2001: unresolved external symbol _strcmp
main.obj : error LNK2001: unresolved external symbol "public: int __thiscall ProSock::SockReadln(char *,int)" ([mailto:?SockReadln@ProSock@@QAEHPADH@Z ?SockReadln@ProSock@@QAEHPADH@Z])
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall ProSock::SockClose(void)" ([mailto:?SockClose@ProSock@@QAEXXZ ?SockClose@ProSock@@QAEXXZ])
main.obj : error LNK2001: unresolved external symbol "public: char const * __thiscall ProSock::Ip(void)" ([mailto:?Ip@ProSock@@QAEPBDXZ ?Ip@ProSock@@QAEPBDXZ])
main.obj : error LNK2001: unresolved external symbol "public: int __thiscall ProSock::Port(void)" ([mailto:?Port@ProSock@@QAEHXZ ?Port@ProSock@@QAEHXZ])
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall ProSock::SockWriteln(char *)" ([mailto:?SockWriteln@ProSock@@QAEXPAD@Z ?SockWriteln@ProSock@@QAEXPAD@Z])
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall ProSock::SockWrite(char *)" ([mailto:?SockWrite@ProSock@@QAEXPAD@Z ?SockWrite@ProSock@@QAEXPAD@Z])
utils.obj : error LNK2001: unresolved external symbol _strcpy
utils.obj : error LNK2001: unresolved external symbol _strncpy
utils.obj : error LNK2001: unresolved external symbol _strnicmp
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
Debug/aRPG.exe : fatal error LNK1120: 19 unresolved externals
Error executing link.exe.


aRPG.exe - 22 error(s), 0 warning(s)

;)
I'm a killing Master
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
29 mars 2005 à 18:52
Remets le NODEFAULTLIB et compile en RELEASE pour voir.

ciao...
BruNews, MVP VC++
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 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.

ciao...
BruNews, MVP VC++
0
DakM Messages postés 65 Date d'inscription jeudi 20 janvier 2005 Statut Membre Dernière intervention 25 juin 2010
29 mars 2005 à 20:18
probleme du strcat resolu, lerreur du depart reviens
Compiling...
game.cpp
Linking...
LIBCD.lib(crt0init.obj) : warning LNK4098: defaultlib "libc.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
main.obj : error LNK2001: unresolved external symbol "bool __cdecl player_exist(char *)" (?player_exist@@YA_NPAD@Z)
Debug/aRPG.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

aRPG.exe - 2 error(s), 1 warning(s)

;)
relou le c++ quoi :X
Ciao DakM .. :)
I'm a killing Master
0
Rejoignez-nous