Plantage d'une dll [résolu] [C++] - C++ - Programmation
Marsh Posté le 05-08-2004 à 13:53:48
char * buf;
sprintf(buf, "%s :\n\n\%s\n\n%s", ERR_LOAD_LIBRARY, dll, ERR_CONTACT);
char * buf;
sprintf(buf, "%s\n\n%s", ERR_REGISTER, ERR_CONTACT);
=> elle sont la tes erreurs ... je suppose que si ca plante apres, c parce que ta mémoire est corrompue ...
c'est une coincidence si une MessageBox empeche le plantage
Marsh Posté le 05-08-2004 à 13:56:49
BlackGoddess a écrit : char * buf; |
Je ne vois pas ce qu'il y a de faux là-dedans... et si je commente ces deux bouts de code, ma dll plante quand même... (ma dll j'entend celle que j'écrit et qui utilise cette classe pas celle que cette classe appelle)
Marsh Posté le 05-08-2004 à 13:59:35
bin si tu as fait partout pareil, c sur qu'elle plante qd mm ...
tu as déclaré un pointeur, mais il pointe dans le vent.
sprintf attend de ton pointeur qu'il pointe vers une allocation valide.
Marsh Posté le 05-08-2004 à 14:04:40
BlackGoddess a écrit : bin si tu as fait partout pareil, c sur qu'elle plante qd mm ... |
non c'est les seules... et c'est juste il me semble. Tout comme tu peux écrire :
const char* str="untruc";
En plus elle fonctionne si je provoque les erreur en question les MessageBox contiennent le bon message.
Marsh Posté le 05-08-2004 à 14:08:21
en c++ :
Code :
|
ou
Code :
|
Marsh Posté le 05-08-2004 à 14:11:01
const char* str="untruc";
=> rien à voir
Taz va faire une attaque
sprintf attend un buffer alloué ...
const char* str="untruc"; est une initalisation d'un pointeur vers une chaine 'statique' ...
et sprintf c'est du C, ici c'est C++
Marsh Posté le 05-08-2004 à 14:13:44
BlackGoddess a écrit : en c++ : |
Excuse-moi je suis fatigué c'était évident en y réfléchissant...
Là j'ai mis un "char buf[256];", ca marche aussi mais comme je fait du c++ je devrais utiliser les opérateurs de flux.
Merci encore...
Marsh Posté le 05-08-2004 à 14:14:34
exactement (pas spécialement les opérateurs de flux, mais au moins les libs du C++ et pas celles du C)
de rien
Marsh Posté le 05-08-2004 à 14:14:40
BlackGoddess a écrit : const char* str="untruc"; |
C'est bon je sors...
Marsh Posté le 05-08-2004 à 13:50:07
Ce code plante, mais si je rajoute un MessageBox juste après "res = pfn_RegisterServer();", il ne plante pas.
Quelqu'un a-til une idée, ce n'est pas très pratique le coup du messagebox...
Message édité par fatypunk le 05-08-2004 à 16:05:46