http://d.puremagic.com/issues/show_bug.cgi?id=6909

           Summary: incorrect definition of the OVERLAPPED struct in
                    core.sys.windows.windows ?
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P3
         Component: druntime
        AssignedTo: nob...@puremagic.com
        ReportedBy: we...@beardmouse.org.uk


--- Comment #0 from Richard Webb <we...@beardmouse.org.uk> 2011-11-08 13:42:10 
PST ---
While trying to get the Juno library building with the latest DMD2, i found
that core.sys.windows.windows defines OVERLAPPED as:

struct OVERLAPPED
{
    DWORD Internal;
    DWORD InternalHigh;
    DWORD Offset;
    DWORD OffsetHigh;
    HANDLE hEvent;
}

whereas Juno defines it as:

struct OVERLAPPED {
  uint Internal;
  uint InternalHigh;
  union {
    struct {
      uint Offset;
      uint OffsetHigh;
    }
    void* Pointer;
  }
  Handle hEvent;
}

And as Juno makes use of the Pointer member, the druntime version fails to
compile.

The MinGW Windows headers define it as:

typedef struct _OVERLAPPED {
    ULONG_PTR Internal;
    ULONG_PTR InternalHigh;
    __GNUC_EXTENSION union {
        __GNUC_EXTENSION struct {
    DWORD Offset;
    DWORD OffsetHigh;
    };
    PVOID Pointer;
    };
    HANDLE hEvent;
} OVERLAPPED,*POVERLAPPED,*LPOVERLAPPED;

and the MSDN is similar, so the Juno version looks correct.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to