Fix wxULongLongNative::ToDouble() compilation with VC6.

The problem alluded to by the commit message of r40658 arose only in the DLL
build using VC6 so reintroduce the workaround for it removed by r67634 but
make it VC6-specific and, arguably even more importantly, also make it work
correctly for wxULongLongNative values greater than LONGLONG_MAX.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-04-28 16:16:16 +00:00
parent a8db6ab73e
commit 4c24ca50d6
2 changed files with 25 additions and 0 deletions

View File

@@ -411,7 +411,16 @@ public:
}
// convert to double
//
// For some completely obscure reasons compiling the cast below with
// VC6 in DLL builds only (!) results in "error C2520: conversion from
// unsigned __int64 to double not implemented, use signed __int64" so
// we must use a different version for that compiler.
#ifdef __VISUALC6__
double ToDouble() const;
#else
double ToDouble() const { return wx_truncate_cast(double, m_ll); }
#endif
// operations
// addition