Use _get_timezone() function instead of _timezone with MSVC8+.

While some (but not all) versions of VC8 CRT still define _timezone variable,
it is deprecated and shouldn't be used and referencing it can result in
linking problems if it pulls in static CRT.

Just use _get_timezone() function instead for the VC versions that support it
(as was already done in r54417 for VC8 in 2.8 branch).

Closes #4691.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-11-02 11:57:30 +00:00
parent 3fee3116dd
commit 7e9c57542f

View File

@@ -137,30 +137,22 @@ wxCUSTOM_TYPE_INFO(wxDateTime, wxToStringConverter<wxDateTime> , wxFromStringCon
#define WX_TIMEZONE wxGetTimeZone()
#elif defined(__DARWIN__)
#define WX_GMTOFF_IN_TM
#elif defined(__WXWINCE__) && defined(__VISUALC8__)
// _timezone is not present in dynamic run-time library
#if 0
// Solution (1): use the function equivalent of _timezone
#elif wxCHECK_VISUALC_VERSION(8)
// While _timezone is still present in (some versions of) VC CRT, it's
// deprecated and _get_timezone() should be used instead.
static long wxGetTimeZone()
{
long t;
_get_timezone(& t);
// The type of _get_timezone() parameter seems to have changed
// between VC8 and VC9.
#ifdef __VISUALC8__
int t;
#else
long t;
#endif
_get_timezone(&t);
return t;
}
#define WX_TIMEZONE wxGetTimeZone()
#elif 1
// Solution (2): using GetTimeZoneInformation
static long wxGetTimeZone()
{
TIME_ZONE_INFORMATION tzi;
::GetTimeZoneInformation(&tzi);
return tzi.Bias; // x 60
}
#define WX_TIMEZONE wxGetTimeZone()
#else
// Old method using _timezone: this symbol doesn't exist in the dynamic run-time library (i.e. using /MD)
#define WX_TIMEZONE _timezone
#endif
#else // unknown platform - try timezone
#define WX_TIMEZONE timezone
#endif