bonjour tout le monde,
jaimerai savoir comment on pourrai convertir un string en char * pour que je puisse lexploiter ??
 conversion d'un string en char *
 conversion d'un string en char *
				
				
						
							
							
						
						
				bonjour tout le monde,
jaimerai savoir comment on pourrai convertir un string en char * pour que je puisse lexploiter ??
 
 
				
				
						
						
				
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
 
 
				
				
						
						
				bonjour niglo,
jai pas compris comment on fait tellement je marrache les cheveux dessus ! mon code le voici
je ne compren rien cela ne fonctionne pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
				
				
						
						
				meme en mettant en fin de ma fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part return *myVar;
cela ne fonctionne pas !
 
 
				
				
						
						
				dites moi si je me déchire mais c normal que ta fonction retourne un char à la place d'un char* ????
 
 
				
				
						
						
				non je veu recuperer une chaine de caractere ! tellement jai mal o crane je ne sais meme plus !!
 
 
				
				
						
						
				Effectivement, ca fonctionnera mieux si tu mets char* en type de retour !Envoyé par ferry.jules
 
 
				
				
						
						
				MEME EN METTANT UN CHAR * en retour cela ne fonctionne pas !!!!
char __stdcall MaFonction_chemin(char *myVar)
{
AnsiString chaine;
myVar = chaine.c_str();
return *myVar;
}
 
 
				
				
						
						
				Oui déjà le char * mais ça ne suffira pas forcément.
Suffit de regarder l'aide sur c_str pour comprendre : le pointeur c_str n'est garanti valide QUE dans la ligne dans laquelle il a été appelé.
Donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
 
 
				
				
						
						
				la jai mi la ligne de commande que tu ma donner ! cela fonctionne mai ce que je recupere ne correspond pas a ce que je dois recevoir !!
 
 
				
				
						
						
				Tu peux nous donner la ligne que tu donnes en entrée et ce que tu récupères ?
P.S. Merci de faire des efforts sur ton français, tu n'es pas sur ton téléphone portable.
En même temps tu devrais avoir une chaine vide vu le code de la fonction. Tu veux faire quoi au fait ?
 Merci de penser aux balises CODE !
 Merci de penser aux balises CODE !
				
				
						
						
				bon encore dsl pour le francais !
je veux recuperer une chaine de caractere qui est donner a ma dll ! cette chaine est etabli sous visual basic ! le programme en question sous visual marche parfaitement ! de ce coter ya pas de probleme ! maintenant je dois recuperer cette chaine de caractere pour pouvoir la donner a ma TForm1 pour pouvoir ensuite l'afficher dans une conbobox !
VISUAL BASIC
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 envoi et retour?
 envoi et retour?
				
				
						
						
				Bonsoir Jules,
Tout dabord désolé pour le char au lieu de char*: en relisant cela me saute aux yeux... J'ai d'ailleurs reproduit cette erreur ce matin en synthètisant des fonctions de mon application en vue de créer une DLL.
La fonction écrite ainsi, a 1 défaut: tu déclares une chaîne "chaine", elle s'intialise et est donc théoriquement vide puis tu la renvoies...
Là y'a franchement un soucis...
Que dois faire cette fonction?
Pour le moment c'est normal si la chaîne retournée est vide.
A quoi sert la chaîne MyStr que tu envoies à la fonction? Que contient-elle?
Quel traitement ta fonction doit réaliser à partir de cette chaîne avant de renvoyer une autre chaîne?
char *__stdcall MaFonction_chemin(char *myVar)
{
AnsiString chaine;
StrPCopy(chaine,myVar); //La fonction doit elle modifier la chaîne?
myVar= strdup(chaine.c_str());
return myVar;
}
Mattetfamilly
 
 
				
				
						
						
				Ce code est faux : tu retourne un char, il s'agit d'un caractère et non pas d'une chaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
D'où :
Cette chaine te retourneras une copie de la chaine qu'elle reçoit en paramètre. Regarde bien le code que tu avais avant...outre le fait que ton type de retour était faux, chaine ne contenait rien..
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Encore une petite chose, peux tu penser à encadrer ton code dans les balises ...cela améliore la lisibilité !
 
 
				
				
						
						
				bonsoir,
petites questions quelle est la taille maximum de Chaine
dans l'exemple si elle plus grande que 255 caractères la chaine retournée par la fonction dans la dll est nulle;
tu peux facilement changer la taille du buffer en modifiant la constante
MaxBufferSize
attention évite d'utiliser dans AnsiString dans les DLL cela oblige a trimballer l'artillerie lourde de Borland
Cordialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
je vous en souhaite une excellente lecture ...
A lire : Les règles du forum
 
 
				
				
						
						
							
						
				Je vous remercu infiment a tous ceux qui ont contribuer a ce sujet !
Partager