Owner drawn listbox example

Started by KetilO, October 19, 2010, 02:19:48 PM

Previous topic - Next topic

KetilO

I have had a few requests about a listbox with a checkbox on each item.

Here is an example.

ketilO

Shooter

I converted your example using RadASM 3.x's internal converter and tried to compile it, but it created an error that has happened to me before (still unresolved too).


rc /v "ODListBox.Rc"
Microsoft (R) Windows (R) Resource Compiler Version 5.2.3690.0

Copyright (C) Microsoft Corporation.  All rights reserved.


Creating ODListBox.RES

Using codepage 1252 as default
RC: RCPP -CP 1252 -f E:\Program Files\RadASM\masm32\examples\ODListBox\RCa02980 -g E:\Program Files\RadASM\masm32\examples\ODListBox\RDa02980 -DRC_INVOKED -D_WIN32 -pc\:/ -E -I. -I . -I E:\Program Files\RadASM\masm\include

ODListBox.Rc.
Writing DIALOG:101, lang:0x409, size 100

ml /c /coff /Cp "ODListBox.Asm"
Assembling: ODListBox.Asm
Microsoft (R) Macro Assembler Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.


link /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /OUT:"ODListBox.exe" "ODListBox.obj"  "ODListBox.res"
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt

Error(s) occured.
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.

Shooter

I think I figured out why I was getting that error... the default set of paths in RadASM 3.0.0.7g pointed to the .\masm\ folder when it should've pointed to the .\masm32\ folder. That took me some time to understand (16bit vs. 32bit).

-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,

It has nothing to do with 16 vs 32 bit, MASM is the name of the assembler and the general name for the various tools that accompany it. MASM32 is the name of the SDK that Hutch maintains, it is unrelated to any Microsoft products except that it is built to use them and includes a version in the distribution (perhaps legally). The Microsoft tools include all of the items needed to build a program however you will require import libraries and constant definitions for Windows builds, you can download the import libraries from Microsoft and get any definitions from the C++ headers, however this is a chore so most people who are MASM users just download Hutch's package. However don't confuse the two, MASM32 is not a Microsoft product nor is it endorsed by Microsoft, MASM is.
"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

Edgar (do you prefer Edgar or Donkey... I never asked and just assumed Edgar),
For my education, is there a difference between the set of .exe's from MASM to MASM32 (ml.exe and link.exe)? I noticed that link.exe in the .\masm\ folder is Version 10.00.30319.01, whereas the link.exe in the .\masm32\ folder is Version 5.12.8078 (ml.exe also has a different set of revisions between the folders). If they are not different, then the only thing I can guess, and it is just a guess, is that the set of include files are different between the set of folders (which would make sense to me).

All I know is that once I changed the paths, everything worked for several projects I'd seen this error on. My real question is: How am I supposed to tell the difference when I open a demo project?

-Shooter

ref:
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt
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,

Edgar or Donkey are both fine, the choice is yours.

The set of exe's that come with MASM32 is MASM just an earlier version that Hutch got from the DDK or something. There should be no problem compiling any examples with newer versions but I can't speak for MASM32 directly, I don't have the package on my machine, I actually had to extract it in order to send you the files I did. Personally, I use the MASM version that came with Visual Studio (10 point something) since I hold a valid license for it and import libraries from Microsoft and I tend to declare all constants within any programs I might write in MASM. Which are very very few since I use GoAsm almost exclusively (for assembly programs, I use Microsoft Visual C/C++ for non-assembly programs) though because of the lack of a library builder in Gotools I occasionally compile COFF files in GoAsm and link them with lib.exe. For your problems its impossible to say why you're having issues, many people, including first timers, have set up the tools you are using without any issues so I can't begin to guess what might be different in your installation.
"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

Quote from: donkey on December 18, 2010, 04:25:18 PM
...I use GoAsm almost exclusively...

Out of curiosity, which IDE do you use with GoASM? I was/am using RadASM 3.0.0.7g and I noticed that I had to convert this particular example from RadASM 2.x (using the handy-dandy built in converter). I was just wondering if that might be the difference for me. Just a thought.

-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

I have about 80 or so projects using RadAsm 2.x both in MASM and GoAsm, maybe 10 converted GoAsm projects and a few converted MASM projects, as well as 10 or so RadAsm 3.x projects. I have addins that I have written for both and ported from 2.x to 3.x without issues. There is no bug I have found with the project converter, it has worked perfectly every time I have used it.

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

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

"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