Need help getting started with RadASM using a Demo Project (Solved)

Started by Shooter, December 03, 2010, 05:50:18 PM

Previous topic - Next topic

Shooter

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
Never use direct references to anything ever. Bury everything in
macros. Bury the macros in include files. Reference those include
files indirectly from other include files. Use macros to reference
those include files.

donkey

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
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable

Shooter

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.
Never use direct references to anything ever. Bury everything in
macros. Bury the macros in include files. Reference those include
files indirectly from other include files. Use macros to reference
those include files.

donkey

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
"Ahhh, what an awful dream. Ones and zeroes everywhere...[shudder] and I thought I saw a two." -- Bender
"It was just a dream, Bender. There's no such thing as two". -- Fry
-- Futurama

Donkey's Stable