Jump to content
Tuts 4 You
ViL

How to create a WinAPI menu in MASM32 without using rc resource files

Recommended Posts

ViL

Hello! i've been looking for a way to add a menu using WinAPI within the same .asm file, without using resource (.rc) files

It can be done in C, like explained in this tutorial http://zetcode.com/gui/winapi/menus/

MASM32's User.lib has the same function prototypes in there (CreateMenu, AppendMenuW, SetMenu)

This is for two reasons, one is because i'd like them not to be edited/spoted using Resource Editors, the other is that i want to keep everything on one .asm source file (as what i want to do is small enough)

I've not seen anyone documenting how to do this before in MASM32 (or even other Win32-targeted compilers) and ran out of ideas trying, any kind of help is very appreciated!

thanks beforehand! :D

Share this post


Link to post
Share on other sites
ViL
Posted (edited)

After a lot of research i could figure it out and ported everything that tutorial shows to MASM32, i hadn't cleaned the source nor commented it but i think it is readable enough, though, if anyone got a question please tell me in a comment!

All options emit a sound (except exit :) ) This is how it looks like:

Zd20rNn.gif

it's all just one .asm file:

https://pastebin.com/raw/Sx2NJHr6

you can download it, save it as main.asm, and compile it in MASM32 with these both commands (assuming you have MASM32 installed in C:\):

    C:\masm32\bin\ml.exe /c /coff /nologo main.asm

to assemble and

    C:\masm32\bin\link.exe /nologo /subsystem:windows main.obj

to link

i hope it may be of help to anyone! = 3

edit: attached the exe and asm files if that's better :D

masm32 menu without rc.zip

Edited by ViLXDRYAD (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×