Probleme de conversion de types

Probleme de conversion de types - C++ - Programmation

Marsh Posté le 22-06-2006 à 00:18:39    

Bonjour à tous.

 

Je fais actuellement un petit programme qui doit m'afficher le jour de la date en cours (lundi, mardi etc).

 

J'ai crée un tableau de const char* qui contient les jours.

 
Code :
  1. const char *daysOfWeek[] = { "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" };
 

Une variable date_heure qui a la structure SYSTEMTIME, à laquelel je fais correspondre la date actuelle.

 
Code :
  1. SYSTEMTIME        date_heure;
  2. GetSystemTime(&date_heure); // Recupere l'heure / date dans la structure


Plus loin, je veux envoyer tout ca a l'ecran, grace à la fonction Drawtext.

 

Mon problème est de générer une chaine de caracteres du type "jeudi 22".

 

J'ai écrit cela :

Code :
  1. std::string date_affichee;
  2. date_affichee+=*daysOfWeek[date_heure.wDayOfWeek];
  3. date_affichee+=TEXT(" " );
  4. date_affichee+=date_heure.wDay;
  5. ...
  6. DrawText(hDC,date_affichee.c_str(),-1,&text_rect_heure,DT_LEFT);


Et je me mange un
.\CustomItem.cpp(327) : error C2664: 'DrawTextW' : cannot convert parameter 2 from 'const char *' to 'LPCWSTR'

 

Comme je début, j'ai encore un peu de mal avec les pointeurs, char*, strings et autres, qu'est ce qui ne va pas ?
un char * c'est pas un pointeur vers une chaine ?


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 22-06-2006 à 00:18:39   

Reply

Marsh Posté le 22-06-2006 à 00:33:40    

date_affichee doit etre de type std::wstring
 
regardes aussi du coté de boost.Date_Time

Reply

Marsh Posté le 22-06-2006 à 00:36:44    

Ca marche, merci !
Je regarde pour Boost.Date_Time


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 22-06-2006 à 00:48:22    

Enfin, ca marche ... ca compile plutot :D
Ca m'affiche "n" si la date est jeudi 22, "j" si la date est vendredi 23 :heink:


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 22-06-2006 à 16:54:22    

Up ?

Reply

Marsh Posté le 22-06-2006 à 18:23:33    

ben utilises boost::date_time, gérée les dates c'est pas si simple, autant ne pas reinventer la roue

Reply

Marsh Posté le 22-06-2006 à 19:25:03    

Oui, mais c'est pour une appli Windows CE, et je suis pas sur que ca soit bien 100% compatible :/ (et que ca fasse ce que je veux).


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 27-06-2006 à 01:04:02    

Up , personne ?
J'ai l'impression qu'il y a un soucis de pointeur ou je ne sais quoi, il doit manquer un * ou un & quelque part :/


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 27-06-2006 à 03:57:10    

Code :
  1. date_affichee+=*daysOfWeek[date_heure.wDayOfWeek];


 
Pas plutôt:
 

Code :
  1. date_affichee = daysOfWeek[date_heure.wDayOfWeek];


 

Reply

Marsh Posté le 27-06-2006 à 11:54:26    

Je sais pas trop, en tout cas si je met ca, ca compile pas ....
 
En fait, ce qu'il se passe, c'est que j'ai que le 1er caractere de la chaine :/


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Marsh Posté le 27-06-2006 à 11:54:26   

Reply

Marsh Posté le 27-06-2006 à 12:59:56    

Finalement, j'ai déclaré la liste comme ceci :

 
Code :
  1. std::wstring  daysOfWeek[] = { L"Dimanche", L"Lundi", L"Mardi", L"Mercredi", L"Jeudi", L"Vendredi", L"Samedi" };


Et plus loin j'ai un

 
Code :
  1. date_affichee=daysOfWeek[date_heure.wDayOfWeek];
 

Et ca fonctionne.
Maintenant, il me reste a convertir un int en wstring :/


---------------
Gamertag : Getget94 - PSN : Getget1980 - Nintendo Network : Getget1980 - Uplau : Getget1980
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed