Hello. I am a newbie, so forgive me if this question has been resolved before.
I have recently installed masm32 on my computer. In C:\masm\include\windows.inc there are a lot of lines that contain a question mark. I feel that this is not the way that it is supposed to be. Here is a fragment of windows.inc:
EMRCREATEDIBPATTERNBRUSHPT STRUCT
emr EMR <>
ihBursh DWORD ?
iUsage DWORD ?
offBmi DWORD ?
cbBmi DWORD ?
offBits DWORD ?
cbBits DWORD ?
EMRCREATEDIBPATTERNBRUSHPT ENDS
How do I correct this? Currently I have Microsoft Windows SDK v6.1 installed. That was a huge download.
Hi,
The question mark is OK.
It means "not initialized data" or "do not care about the initial value"
While I can't comment on if that structure is up to date(may of been expanded for vista and changed for 64bit) the question marks in MASM mean unitialized data so for example
buffer byte 1024 dup(?) <---this is a uninialized buffer
buffer db 1024 dup(0) <---this is a initalized buffer that will add 1024 bytes to your actual exe,dll etc size on disk
also db and byte are the same thing
dd and DWORD are the same thing
dw and WORD are the same thing
qw and QWORD as the same thing
Although the docs say that offBmi and offBits are pointers the structure for some unknown reason has not changed at least as far as the VS2008 headers, you would think they should be defined as DWORD_PTR.
Edgar