Does compile now, but I managed to produce an application error during a
test run on a https site.

I produced a debug build with /DDEBUG /Zi /Od /Fd /FR and produced the
wget.bsc by running bscmake on all the sbr files, but I didn't yet
understand how to use that one in VC++ in order to get a meaningfull stack
trace and so on.
The only thing I got for now is :SSLEAY32! 0023ca38()" as the breaking
point.
Anybody knows to to debug this beast or how to generate a working project
file in order to make the source browser work ?

Heiko Herold

-- 
-- PREVINET S.p.A. www.previnet.it
-- Heiko Herold [EMAIL PROTECTED]
-- +39-041-5907073 ph
-- +39-041-5907472 fax

> -----Original Message-----
> From: Hrvoje Niksic [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 16, 2003 11:02 PM
> To: Herold Heiko
> Cc: List Wget (E-mail)
> Subject: Re: windows compile error
> 
> 
> 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
>  }
>  
> 

Reply via email to