windows 资源ID/资源描述

比如我想加载一个ICON,使用如下函数(32bit程序):
LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName);

【1】若我的X.RC文件是这样的:
ICONX ICON “D:\1.ico”
在主函数里加载ico,可以这样:LoadIcon(hIns,"ICONX");

【2】若我的X.RC文件是这样的:
123 ICON “D:\1.ico”
在主函数里加载ico,可以这样:LoadIcon(hIns,MAKEINTRESOURCE(123));

而MAKEINTRESOURCE就是把123低16位的值(123),强制转换为一个字符串地址


如果是使用【2】的方法:
问题1,【2】的RC文件里,我只给ICON一个ID值,没给它起名字,LoadIcon时的第二个参数是怎么获得的呢?

问题2,是不是意味着,在此进程的地址空间里,地址为123的地方存着ICON的名字?换句话说,RC文件每个资源前面的ID,是不是人为的指定某个资源,让它存储在所属进程地址空间里固定的位置(地址为资源ID值)?

问题3,进程(32bit)地址空间的 0X0000,0000~0X0000,FFFF 是专门放资源的么?每个地址有多大的地方(每个地址有多少字字节)?

资源ID/资源名和windows没关系,是vc++的resource.h里面定义的常量和对应的名字。