Conversion de CString en double [C++] - C++ - Programmation
Marsh Posté le 03-08-2004 à 10:16:23
Code :
|
Marsh Posté le 03-08-2004 à 10:38:18
J'ai vu ça sur les autres topic mais ça marche pas..
Je peux pas parce que je veux récupérer une variable
En gros je fais :
Code :
|
et ça marche pas...
et il me renvoie ça:
Code :
|
Marsh Posté le 03-08-2004 à 10:42:14
ah merde, j'ai oublié le cast !
essaie ça :
Code :
|
Marsh Posté le 03-08-2004 à 10:46:03
rattrape toi aux branches, je t'y prends à souiller mon static_cast avec ces windowseries . il merdoie le forum, c'est gonflant
Marsh Posté le 03-08-2004 à 10:49:33
J'allais grimpé au rideaux..... mais il me renvoie ça :
Code :
|
Merci Harkonnen pour l'aide
Marsh Posté le 03-08-2004 à 10:51:30
Taz a écrit : rattrape toi aux branches, je t'y prends à souiller mon static_cast avec ces windowseries . il merdoie le forum, c'est gonflant |
tu peux pas imaginer comme la classe CString des MFC est mal fichue, t'es obligé d'utiliser ce genre de ficelle pour t'en sortir
Marsh Posté le 03-08-2004 à 10:52:49
Cpu Toaster a écrit : J'allais grimpé au rideaux..... mais il me renvoie ça :
|
t'utilises quelle version des MFC ? la 4.2 ou la 7 ?
Marsh Posté le 03-08-2004 à 10:54:16
et pourquoi pas utiliser
Code :
|
?
Marsh Posté le 03-08-2004 à 11:00:44
Merci mais ça marche pas parce que C_str n'est pas membre de CString... d'après lui..
Harkonnen désolé, je vois pas où c'est la version du MFC
C'est visual 6.0 que messieurs du labo m'ont installé
Marsh Posté le 03-08-2004 à 11:08:35
tiens? me semblait qu'il existait aussi dans les CString... (vive les strings de la STL)
bon ben la MSDN dit:
Citation : Converting to C-Style Null-Terminated Strings |
Marsh Posté le 03-08-2004 à 11:15:46
Euh je comprends pas tout met, en gros en faisant :
Code :
|
Bon désolé j'écris n'importe quoi peut-être mais là, je suis un peu dépassé par les évènements...
Marsh Posté le 03-08-2004 à 11:22:33
Cpu Toaster a écrit : Euh je comprends pas tout met, en gros en faisant :
|
non, essaie plutot ça :
Code :
|
Marsh Posté le 03-08-2004 à 11:25:41
Code :
|
Bon, je vous prends la tête, je vais essayer de contourner via des boutons pour forcer le dodataexchange ce que je ne connais pas non plus .. Bon, c'est parti
Marsh Posté le 03-08-2004 à 11:28:15
const unsigned short ?? CString en unicode ? il te faudrait une conversion unicode => ascii dans ce cas
et sinon, il me semble (je connais pas les MFC) qu'il ne faut pas mettre '*' ds l'exemple d'Harkonnen
Code :
|
Marsh Posté le 03-08-2004 à 11:31:48
Bon mon code :
Code :
|
et ça me renvoie:
Code :
|
Faut des librairies spéciales pour faire tout ça? (on sait jamais...)
Marsh Posté le 03-08-2004 à 11:35:05
voila peut-etre un début de solution en utilisant la STL :
Code :
|
edit : +const
Marsh Posté le 03-08-2004 à 11:39:16
Code :
|
quand je mets Temp_p à la place de tachaine.
Marsh Posté le 03-08-2004 à 11:41:56
static_cast<const TCHAR*> pardon
Marsh Posté le 03-08-2004 à 11:45:19
ÇA COMPILE!!!! maintenant, faut que je comprenne la chose, pourquoi tu as mis
Code :
|
?
S'il y a succès normalement, ma variable p devrait prendre la valeur du CString c'est ça?
Merci à tous
je continue
Marsh Posté le 03-08-2004 à 11:47:49
oui, mais s'il y a erreur, la variable est indéfinie ... donc ca peut etre une valeur valide ...
std::basic_istringstream<...>::operator >> retourne vrai si la conversion a réussi, faux sinon.
s'il y a succès, oui la variable prends la valeur du CString
Marsh Posté le 03-08-2004 à 11:50:52
oui, ca appelle l'operateur bool sur la référence std::basic_istringstream qui est 'la valeur' de retour de l'operateur ?
Marsh Posté le 03-08-2004 à 11:58:46
oki donc normalement je tape la suite du code dans succes alors et je laisse comme ça...
Je viens de me rendre compte que quand j'appuie sur mes boutons il se passe rien... pfff ça me soule, c'est la fin de la journée. Je m'en vais du bureau
Merci à tous
Marsh Posté le 03-08-2004 à 12:09:58
vi suis à Hong Kong
Rhooo, mon Onkillfocus, je met un AfxMessageBox derrière et il y a rien qui s'affiche
Marsh Posté le 03-08-2004 à 12:20:58
Je me disais bien parcequ'en France c'est (malheureusement ) pas trop l'heure de partir...
Par contre désolé j'y connais rien niveau MFC...
Marsh Posté le 03-08-2004 à 12:34:49
et si t'essayais autre chose que atof ?
exemple :
Code :
|
en plus, t'es blindé au niveau Unicode avec cette manip
Marsh Posté le 03-08-2004 à 12:47:59
Bé non j'ai pas essayé, mais comme il compile je me prend plus la tête avec, je voulais vérifier si ça marchait en me balançant la valeur que je saisissai dans l'edit box, mais rien ne marche, je m'explique, j'ai ma dialog box, j'appuie sur tous les boutons et ou edit box que j'ai, il se passe rien alors que j'ai des onOK ou des trucs comme ça programmés et bien linker..
Bon je vais faire des heures sup à la maison moi...
Marsh Posté le 03-08-2004 à 12:49:54
ben dans le OnOK(), balance un AfxMessageBox(), pour voir si c'est la pompe à messages ou ta fonction qui déconne
Marsh Posté le 03-08-2004 à 12:52:54
Ben justement, il y a rien qui se passe,
Pourtant j'ai bien créé tous mes trucs, j'ai même créé mon programme par dessus un sample du msdn...
Grrr je vais metelefaire!
Marsh Posté le 03-08-2004 à 12:55:55
est ce que ta fenêtre principale est bien rattachée à une classe
Marsh Posté le 03-08-2004 à 13:04:45
Ben oui, en gros ce que j'ai fait c'est que j'ai programmer par dessus le CmnCtrl2 des samples du msdn, en gros c'est une fenêtre d'application qui affiche une boîte de dialog avec plein de tab control. La fenêtre principal est lié a une CpropertySheet, et les tab affichent des "dialog" qui sont elles mêmes liées à des CPropertyPage.
Quand j'ai commencé à programmer, j'ai trouver où le programme indiquait quelles tab afficher et j'ai mis en comments les quelques lignes qu'il fallait dans le PropertySheet. Ensuite j'ai crée mes autres PropertyPage avec les dialog qui faut.
Là je lance le programe, ben il m'affiche bien la boîte avec les tab et tous, je peux aller partout, par contre quand j'appuie sur les boutons avec du code derrière, même un bête AfxMessageBox(CString("truc" )); derrière... ça marche pas..
Par contre, je viens à me poser une question vu que sans le CString de mon Afxmessagebox, ça plante. Quand je compile, j'ai ce message:
Code :
|
ça pourrait expliquer mes multiples erreurs précédentes?
Marsh Posté le 03-08-2004 à 10:07:16
Voilà après un long moment de recherche sur le forum et via le net, je n'arrive pas à trouver une méthode qui pourrait me convertir un CString en double. Je suis en train de programmer un petit soft de calcul de propriétés de divers type de solution, donc j'ai agencé ça avec avec une fenêtre avec pleins d'edit box..
Mon problème, c'est que je dois récupérer des variables de types double or avec GetDlgItem(Text ou Int) ben je ne récupère pas le bon format.
J'ai lu plusieurs topic sur la conversion vers des int mais chez moi, aucune ne marche.
En gros ce que je veux faire c'est OnKillFocusMonEditBox, récupérer la valeur de la edit box, sachant que j'y ai associé une variable de type double. Ça pourrait en quelque sorte éviter que je passe par le GetDlgItemTruc. Pui je voulais tenter un DDX_Text mais je sais pas comment faire juste pour une variable...
Bon voilà, je suis un peu (beaucoup) newb en programation alors j'en fais appel à vous
MERCI
---------------
Photo Toaster - Flickr Toaster - Blog Toaster