Mailing-List: contact cygwin-help@sourceware.cygnus.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@sourceware.cygnus.com>
List-Archive: <http://sourceware.cygnus.com/ml/cygwin/>
List-Post: <mailto:cygwin@sourceware.cygnus.com>
List-Help: <mailto:cygwin-help@sourceware.cygnus.com>, <http://sourceware.cygnus.com/ml/#faqs>
Sender: cygwin-owner@sourceware.cygnus.com
Delivered-To: mailing list cygwin@sourceware.cygnus.com
Reply-To: <kris.thielemans@csc.mrc.ac.uk>
From: "Kris Thielemans" <kris.thielemans@csc.mrc.ac.uk>
To: <anorland@hem.passagen.se>
Cc: "Gnuwin" <cygwin@sourceware.cygnus.com>
Subject: LARGE_INTEGER in w32API 0.1.5
Date: Fri, 28 Jan 2000 12:17:42 -0000
Message-ID: <000c01bf6989$ad007e70$1d4bb392@petnt1.rpms.ac.uk>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook 8.5, Build 4.71.2377.0
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2120.0

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

