Autre problém de variable externe

mateo40 Messages postés 9 Date d'inscription lundi 4 novembre 2002 Statut Membre Dernière intervention 2 avril 2003 - 6 nov. 2002 à 03:46
cs_llo Messages postés 45 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 6 décembre 2002 - 8 nov. 2002 à 09:09
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

cs_llo Messages postés 45 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 6 décembre 2002
6 nov. 2002 à 18:07
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
mateo40 Messages postés 9 Date d'inscription lundi 4 novembre 2002 Statut Membre Dernière intervention 2 avril 2003
7 nov. 2002 à 16:46
Ca na marche pas!
La nouvelle varaible est vide (data :"NULL")...
Merci qd même
cs_llo Messages postés 45 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 6 décembre 2002
7 nov. 2002 à 18:03
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
mateo40 Messages postés 9 Date d'inscription lundi 4 novembre 2002 Statut Membre Dernière intervention 2 avril 2003
7 nov. 2002 à 20:04
Merci, je vais voir pour le sleep.
Sinon, ma variable est de type AnsiString (surdéfinition de Builder de char*).

@+

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

Posez votre question
mateo40 Messages postés 9 Date d'inscription lundi 4 novembre 2002 Statut Membre Dernière intervention 2 avril 2003
7 nov. 2002 à 23:50
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... :-(
cs_llo Messages postés 45 Date d'inscription jeudi 10 octobre 2002 Statut Membre Dernière intervention 6 décembre 2002
8 nov. 2002 à 09:09
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
Rejoignez-nous