LARGE_INTEGER in w32API 0.1.5
Kris Thielemans
kris.thielemans@csc.mrc.ac.uk
Fri Jan 28 04:19:00 GMT 2000
Hi
I'm having problems with LARGE_INTEGER (defined in winnt.h). Via the cygwin
mailing list I found out that in the distributed W32 API, LARGE_INTEGER and
LONGLONG are flawed. Mumit advised to download your w32api 0.1.5 which I
did. However, even
there, the LARGE_INTEGER is not compatible with Microsoft's. The following
code does not work:
LARGE_INTEGER a;
DWORD b = a.LowPart;
instead, we have to use
DWORD b = a.u.LowPart;
This fits (of course) with your definition
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
}_STRUCT_NAME(u);
LONGLONG QuadPart;
} LARGE_INTEGER,*PLARGE_INTEGER;
compared to Visual C++ 5.0 (an extra struct in the union):
#if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER {
#else // MIDL_PASS
typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
};
struct {
DWORD LowPart;
LONG HighPart;
} u;
#endif //MIDL_PASS
LONGLONG QuadPart;
} LARGE_INTEGER;
Thanks for providng the API !
Kris
PS :
for cygwin people. This API can be found on
http://www.acc.umu.se/~anorland/gnu-win32/
The standard distribution defines LONGLONG as double, and
typedef struct _LARGE_INTEGER
{
DWORD LowPart;
LONG HighPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com
More information about the Cygwin
mailing list