『香`草の゛芭芙 发表于 2012-7-29 09:54:45

关于win32汇编,equ 和 资源定义,不好理解 ~>.<~

ICO_BIG       equ1000h
ICO_SMALLequ1001h
CUR_2          equ1000h
IDM_MAIN   equ2000h
IDM_EXIT   equ2101h
IDM_BIG      equ2201h
IDM_SMALL equ2202h
IDM_CUR1   equ2203h
IDM_CUR2   equ2204h

这定义的是什么意思呢?后面的16进制是内存中的虚拟地址吗? 00001000 来表示ICO_BIG,是这么理解的吗?
ID=指针? ID=内存偏移地址 这样理解对吗?{:5_99:}

メ㊣逆ご帅☆ 发表于 2012-7-29 09:54:46

equ等值定义,也就是宏定义
ICO_BIG       equ1000h
也就是说你在本代码任何地方(宏定义不清楚有没有作用域问题)填写ICO_BIG 编译器都会自动改为1000H
也就是说ICO_BIG =1000h
当然你可以作为菜单ID
菜单ID好像不占用虚拟地址
也就是说应该只是一个类似标签的东西

大头石 发表于 2012-7-29 10:31:47

后面的数值就是数值,并不是地址。这就是win32汇编中的宏定义哦。相当于C中的#DEFINE哦。
不过在同的类别中的定义是可以相同的额!!!!比如ICO_XXXX equ 1000h IDM_XXXX equ 1000h两个数值是可以相同的额。。。
:funk:

『香`草の゛芭芙 发表于 2012-7-29 10:58:45

大头石 发表于 2012-7-29 10:31 static/image/common/back.gif
后面的数值就是数值,并不是地址。这就是win32汇编中的宏定义哦。相当于C中的#DEFINE哦。
不过在同的类别中 ...

#define PI 3.1415926这样到好理解,
ICO_BIG       equ1000h    这1000h 是代表什么?

CUR_2          equ1000h还有这个。。怎么会一样 ?

好迷糊啊。。。。{:5_96:}

无星之夜 发表于 2012-7-29 12:28:09

你就把前面的那个东西当做不能改变值的变量就行了,1000h就是16进制数啊

『香`草の゛芭芙 发表于 2012-7-29 13:08:42

无星之夜 发表于 2012-7-29 12:28 static/image/common/back.gif
你就把前面的那个东西当做不能改变值的变量就行了,1000h就是16进制数啊

。。。我知道是16进制数,
ICO_BIG       equ1000h    只是16进制数的话, 那我能不能改成   ICO_BIG       equ2222h

CUR_2          equ1000h这个也改 CUR_2          equ3333h

16进制 总得代表什么意思吧,这是微软规定 1000h 就代表 ICO_BIG 么?如果是的话那我没问题了。只能硬背了。{:5_94:}

无星之夜 发表于 2012-7-29 13:10:48

『香`草の゛芭芙 发表于 2012-7-29 13:08 static/image/common/back.gif
。。。我知道是16进制数,
ICO_BIG       equ1000h    只是16进制数的话, 那我能不能改成   ICO_BIG ...

不是windows.inc的头文件里面就有么?包含进来不就完了,不用背啊
页: [1]
查看完整版本: 关于win32汇编,equ 和 资源定义,不好理解 ~>.<~