diff --git a/pngpriv.h b/pngpriv.h index 6d2e424d2..2369b8e29 100644 --- a/pngpriv.h +++ b/pngpriv.h @@ -466,7 +466,14 @@ static_cast(static_cast(value)) #else # define png_voidcast(type, value) (value) -# define png_constcast(type, value) ((type)(value)) +# if defined( _WIN64 ) && ! defined( __GNUC__ ) + typedef unsigned __int64 png_ptruint; +# elif defined( _WIN64 ) + typedef unsigned long long png_ptruint; +# else + typedef unsigned long png_ptruint; +# endif +# define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value)) # define png_aligncast(type, value) ((void*)(value)) # define png_aligncastconst(type, value) ((const void*)(value)) #endif /* __cplusplus */