recuperer la date sous visual C++

recuperer la date sous visual C++ - Programmation

Marsh Posté le 31-05-2001 à 12:05:54    

bonjour a tous,
 
j'ai un petit probleme lorsque j'appelle ma fonction pour recuperer la date je fais l'appel suivant :
GetTimeFormat (LOCALE_SYSTEM_DEFAULT, TIME_FORCE24HOURFORMAT , NULL, "HH':'mm':'ss", (LPTSTR) Tmp, 9);
 
avec LPTSTR Tmp;
 
le probleme c'est que je ne recupere rien dans Tmp en retour. Apres avoir effectuer un GetLastError j'ai le droit a un ERROR_INVALID_PARAMETER mais je ne sais pas quel parametre est faux vu que lors de la compilation ca passe nickel.
 
Bon j'espere que vous pourrez m'aider d'avance merci
 
                   Toto1234

Reply

Marsh Posté le 31-05-2001 à 12:05:54   

Reply

Marsh Posté le 31-05-2001 à 12:47:28    

un petit coup de pouce s'il vous plait

Reply

Marsh Posté le 31-05-2001 à 13:18:52    

peux-tu préciser le type de tes variables ?

Reply

Marsh Posté le 31-05-2001 à 13:27:49    

la seule variable que j'utilise c'est Tmp (qui doit contenir la chaine de caractere : ici l'heure).  
 
LPTSTR Tmp;
 
pour les autres types cf MSDN :
int GetTimeFormat(
  LCID Locale,       // locale for which time is to be formatted
  DWORD dwFlags,             // flags specifying function options
  CONST SYSTEMTIME *lpTime,  // time to be formatted
  LPCTSTR lpFormat,          // time format string
  LPTSTR lpTimeStr,          // buffer for storing formatted string
  int cchTime                // size, in bytes or characters, of the buffer
);

Reply

Marsh Posté le 31-05-2001 à 13:37:09    

Tmp est un LPTSTR donc un pointeur (une adresse). Il n'y a pas de mémoire associée pour mettre les 8 caractères (+ éventuellement le '\0').
 
Il faudrait peut-être faire un malloc
Tmp = (LPTSTR)malloc(9 * sizeof(char)); (ou analogue) pour réserver de l'espace où mettre les caractères de heure/date
 
ou déclarer en char  
char Tmp[9];  // 9 caract dont le zéro terminal
et passer en LPTSTR dans l'appel comme déja fait
 
GetTimeFormat (LOCALE_SYSTEM_DEFAULT, TIME_FORCE24HOURFORMAT , NULL, "HH':'mm':'ss", (LPTSTR) Tmp, 9);

Reply

Marsh Posté le 31-05-2001 à 15:04:43    

j'avais essaye la premiere solution mais ca marchait pas alors que le char Tmp[9] marche nickel.
 
Merci merci merci

Reply

Sujets relatifs:

Leave a Replay

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