GetDateFormat() compilé avec VS2008 n'est pas sensible aux regional settings
Bonjour à tous,
J'utilise au sein d'un programme le code suivante:
Code:
1 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
|
void ******::Get****FormattedDate(CString& datestring, SYSTEMTIME time)
{
CString result;
datestring.Empty();
DWORD err= 0;
LCID lcid = LOCALE_USER_DEFAULT;
int length = GetDateFormat(lcid, DATE_SHORTDATE, &time, NULL, NULL, 0);
if(length == 0)
{ /* error */
err = GetLastError();
} /* error */
else
{
LPTSTR p = result.GetBuffer(length);
if(!::GetDateFormat(lcid, DATE_SHORTDATE, &time, NULL, p, length))
{
err = GetLastError();
result.ReleaseBuffer();
}
else
{
result.ReleaseBuffer();
}
}
datestring = result;
} |
Malheureusement, j'ai beau changer les settings sur allemand ou anglais, rien n'y fait, le format retourné est toujours le même :(.
En faisant quelques recherches, je suis tombé sur le site suivant http://www.flounder.com/localeexplorer.htm , il permet de tester la fonctionnalité ainsi que de récupérer le code source utilisé. Lui fonctionne très bien et retourne un résultat différent selon que je suis en anglais/francais/allemand, un copier coller vers mon code par contre ne fonctionne pas :(.
La seule différence que je vois se trouve au niveau de la compilation, "LocalExplorer" est compilé avec VS6 tandis que je tourne sur VS2008.
Quelqu'un a t il une solution ou un conseil à donner?
D'avance, un grand merci.