I decided to try out RadASM today, and once I read all of the ReadMe's I finally figured out how to open a demo project. To that end, I've downloaded a set of demos from http://www.oby.ro/rad_asm/projects/Demo.zip.
I wanted to see how things work so I extracted ComboBoxEx and opened it with RadASM. I've set my 'languages' so that MASM is the first in the list. However, when I attempt to compile it I receive the following error list.
Do I have something set incorrectly in RadASM, or does this demo contain errors? When it comes to these demos, which 'assembler' should I use since they don't state anything in the zip file?
Error List:
ComboBoxEx.inc(18) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(18) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(19) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(19) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(20) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(20) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(21) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(21) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(22) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(22) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(23) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(23) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(24) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(24) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(25) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(25) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(26) : error A2160: non-benign structure redefinition: label incorrect : COMBOBOXEXITEMA
ComboBoxEx.inc(26) : error A2163: non-benign structure redefinition: incorrect initializers : COMBOBOXEXITEMA
ComboBoxEx.inc(27) : error A2161: non-benign structure redefinition: too few labels : COMBOBOXEXITEMA
ComboBoxEx.asm(39) : error A2006: undefined symbol : fmask
Many thanks. I am excited to learn Assembly Language again.
-Shooter
Hi Shooter,
These examples are written for MASM. The RAP file (project file) contains the information for which assembler it uses so it is not something you have to worry about in this case. The structure redefinition in ComboBoxEx.inc is the result of COMBOBOXEXITEM being defined in it and also in Windows.inc and the 2 definitions are different. The fmask member of COMBOBOXEXITEM is defined as _mask in Windows.inc. You will have to remove the definition from ComboBoxEx.inc and replace the occurrences of fmask to _mask.
Edgar
Thank you, Donkey.
I commented out everything in ComboBoxEx.Inc and changed all references from fmask to _mask and all is well in the world again.
;COMBOBOXEXITEM struct
; _mask dd ?
; iItem dd ?
; pszText dd ?
; cchTextMax dd ?
; iImage dd ?
; iSelectedImage dd ?
; iOverlay dd ?
; iIndent dd ?
; lParam dd ?
;COMBOBOXEXITEM ends
I appreciate your input.
No problem Shooter,
You will find that in MASM programs structures with a member named "mask" will be a constant problem since MASM cannot use the keyword "mask" in the definition it is substituted with various prefixed versions. Just something to watch for, it is one of the main reasons that my header files had to drop support for MASM as I wanted to stick strictly to the MSDN definitions.
Edgar