unlimited72
Messages postés13Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention19 août 2008
-
18 juil. 2008 à 14:29
SAKingdom -
18 juil. 2008 à 23:03
Bonjour,
J'ai un petit soucis, je souhaite faire des stats dans mes méthodes pour cela j'ai crée un fichier de log (LogPerf), lequel j'appel a chaque entrée et sortie de méthode tout marche bien sauf pour une méthode :
// permet de construire le contenu de l'url qui sera renvoyé dans la methode POST
void ConstruireURL(char* composant)
{
LogPerf("ConstruireURL", "E");
if(temp!=NULL)
{
URL = strcat(temp,composant); // si tampon existe deja, alors on concatene
}
else
{
URL = strcpy(temp,composant); // si tampon est vide, alors on copie
}
LogPerf("ConstruireURL", "S");
}
mon appli doit se connecter lorsqu'en entrée je ne fait pas de log l'appli se connecte correctement mais lorsque je fais le log j'ai un refus de connection je ne comprend pas pourquoi l'appel et l'écriture dans le fichier empêche ma connection.
Code Fichier log :
int evenement=0;
void LogPerf(char* chain, char* sens) //j'ouvre le fichier au debut du WinMain
{
// char* logPerf="C:\\TMP\\logPerf.txt";
// file_log = fopen(logPerf, "a");
SYSTEMTIME now;
GetLocalTime(&now);
TCHAR heures[10];
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 18 juil. 2008 à 14:47
Bonjour,
Déjà ça au premier coup d'oeil :
void ConstruireURL(char* composant)
{
LogPerf("ConstruireURL","E");
if (temp != NULL)
{
// ici le tampon "temp" existe
// et peut contenir n'importe quoi
// au bout duquel (au 1er zéro binaire rencontré)
// on concatène "composant"
URL = strcat(temp,composant); // si tampon existe <strike>deja</strike>
}
else
{
// ici le tampon "temp" n'est pas vide
// mais inexistant (adresse = NULL)
// donc strcpy() va planter !
URL = strcpy(temp,composant); // si tampon <strike>est vide</strike>
}
LogPerf("ConstruireURL","S");
}
unlimited72
Messages postés13Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention19 août 2008 18 juil. 2008 à 15:08
char* URL=NULL;
char* temp[2000];
LogPerf() est bien appelés dans le code que j'ai fournis, c'est justement mon gros problème si je mes en commentaire l'appel à l'entrée de la méthode tout se passe bien je n'ai pas d'erreurs de compilation et l'application se connecte correctement, en revanche et dans le cas ou je l'appel en début de cette méthode seulement la j'ai mon application qui à n problème à la connection..
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 18 juil. 2008 à 15:16
Et "URL" est bien un pointeur sur la chaîne retournée par strcpy() (qui sera systématiquement exécutée puisque "temp" existe et est donc toujours non NULL) c'est à dire que "URL" pointe "temp" qui contient la chaîne issue de "composant".
unlimited72
Messages postés13Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention19 août 2008 18 juil. 2008 à 15:26
Oui je suis bien d'accord avec vous cependant je ne comprend pas pourquoi le fait d'appeler LogPerf() juste avant le test fait que l'appli me jette lors de la connexion..
j' appel juste une méthode pourquoi agirait-elle sur cette tentative de connexion.
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 18 juil. 2008 à 16:37
Et ça compile ???
int Size = ...
LPSTR szXXX[Size];
Impossible !
Size doit être une constante et non une variable. C'est pour ces cas là qu'il existe des new, malloc, calloc ... delete, free ...
En plus, si ça marchait, szXXX serait un tableau de pointeurs de chaînes (LPSTR = Long Pointer of STRing).
unlimited72
Messages postés13Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention19 août 2008 18 juil. 2008 à 16:41
oui ça compile...
Ennfin en faite je reprend le code d'une application déjà créer, je suis en stage et je doit rectifier certains défauts donc je ne connais pas tout le code, l'application marche vraiment pourtant