"Lionel Ulmer" lionel.ulmer@free.fr wrote:
Basically, there was two issues: the first is that the 'fpos_t' is 64 bits in Windows (Mike M. checked on VC++ and I checked on MinGW and both confirmed this).
The situation with fpos_t is even worse. Both VC++ (Win32) and Platform SDK (Win64 part) define it as follows (stdio.h):
#ifndef _FPOS_T_DEFINED #undef _FPOSOFF
#if defined (_POSIX_) typedef long fpos_t; #define _FPOSOFF(fp) ((long)(fp)) #else /* _POSIX_ */
#if !__STDC__ && _INTEGRAL_MAX_BITS >= 64 typedef __int64 fpos_t; #define _FPOSOFF(fp) ((long)(fp)) #else typedef struct fpos_t { unsigned int lopart; int hipart; } fpos_t; #define _FPOSOFF(fp) ((long)(fp).lopart) #endif #endif /* _POSIX_ */
#define _FPOS_T_DEFINED #endif