Autre problém de variable externe

Signaler
Messages postés
9
Date d'inscription
lundi 4 novembre 2002
Statut
Membre
Dernière intervention
2 avril 2003
-
Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002
-
Voila,

je déclare dans projet.cpp une variable de type AnsiString chemin. Elle contient le chemin d'un fichier à ouvrir.

dans Thread_Chiffrement::Execute(),(un thread)
j'utilise la fonction CreateFile et je passe en paramétre le chemin.

En débogage, le chemin est le bon! Sauf qu'en fin de compte CreateFile retourne NULL --> Echec d la fonction.

Plus fort, si je fait un ShowMessage(chemin), le message est vide....

Quelqu'un serait-il pourquoi???

Merci

6 réponses

Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002

salut,
stocke ton chemin dans une variable locale dès les premières lignes de ton threads.
Il est possible que ta variable soit réinitialisée dans la procédure qui crée ton thread où que tu sois sorti de cette procédure avant d'être utilisé dans ton thread!
shuss
l'lo
Messages postés
9
Date d'inscription
lundi 4 novembre 2002
Statut
Membre
Dernière intervention
2 avril 2003

Ca na marche pas!
La nouvelle varaible est vide (data :"NULL")...
Merci qd même
Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002

salut,
ta nouvelle variable est un pointeur ou un char[X]?
dans le premier cas, fais bien une allocation et copie la chaîne...
sinon, après la création de ton thread, essaie de mettre un sleep histoire de donner le temps processeur à ton nouveau thread
l'lo
Messages postés
9
Date d'inscription
lundi 4 novembre 2002
Statut
Membre
Dernière intervention
2 avril 2003

Merci, je vais voir pour le sleep.
Sinon, ma variable est de type AnsiString (surdéfinition de Builder de char*).

@+
Messages postés
9
Date d'inscription
lundi 4 novembre 2002
Statut
Membre
Dernière intervention
2 avril 2003

Le sleep(1000) ne marche pas!
char *new_chemin_fichier_a_coder;
new_chemin_fichier_a_coder = new char[100];

strcpy(new_chemin_fichier_a_coder,chemin_fichier_a_coder.c_str());

ne marche pas non plus. Quand je fais ShowMessage(chemin_fichier_a_coder.Length());
La boite de message m'affiche 0.
Mais en débogage, lorsque je passe la souris sur la variable, il m'affiche bien le chemin....

C'est à n'y rien comprendre!Je désespére... :-(
Messages postés
45
Date d'inscription
jeudi 10 octobre 2002
Statut
Membre
Dernière intervention
6 décembre 2002

salut,
là je sèche un peu....
sinon bien que c++ builder me soit totalement inconnu (... et comme VC++ me va très bien je ne pense pas migrer!!!!), tu peux si tu veux m'envoyer ton code à "llo_man@yahoo.fr" si tu veux que j'y jette un coup d'oeil!!! par contre ce ne sera pas avant la semaine prochaine!
salut
l'lo