DWORD is unsigned long on 32bit builds, and unsigned int on 64bit. There is no correct printf format string.
Easiest fix is cast it to unsigned.
(IMO gcc complaining about int/long mismatch on 32bit platforms where those have identical representation is a bug, but we've gotta work with the compilers we have.)