Herold Heiko <[EMAIL PROTECTED]> writes: > Just a quick note, the current cvs code on windows during compile (with > VC++6) stops with > > cl /I. /DWINDOWS /D_CONSOLE /DHAVE_CONFIG_H /DSYSTEM_WGETRC=\"wgetrc\" > /DHAVE_SSL /nologo /MT /W0 /O2 /c utils.c > utils.c > utils.c(1651) : error C2520: conversion from unsigned __int64 to double not > implemented, use signed __int64 > > The culprit seems to be (in wtimer_sys_diff) > > #ifdef WINDOWS > return (double)(wst1->QuadPart - wst2->QuadPart) / 10000; > #endif
Does this patch help? 2003-09-16 Hrvoje Niksic <[EMAIL PROTECTED]> * utils.c (wtimer_sys_diff): Convert the time difference to signed __int64, then to double. This works around MS VC++ 6 which can't convert unsigned __int64 to double directly. Index: src/utils.c =================================================================== RCS file: /pack/anoncvs/wget/src/utils.c,v retrieving revision 1.54 diff -u -r1.54 utils.c --- src/utils.c 2003/09/15 21:14:15 1.54 +++ src/utils.c 2003/09/16 21:01:02 @@ -1648,7 +1648,10 @@ #endif #ifdef WINDOWS - return (double)(wst1->QuadPart - wst2->QuadPart) / 10000; + /* VC++ 6 doesn't support direct cast of uint64 to double. To work + around this, we subtract, then convert to signed, then finally to + double. */ + return (double)(signed __int64)(wst1->QuadPart - wst2->QuadPart) / 10000; #endif }