   resources
  Resources are data and they are often stored in a program's .EXE file, but they do not reside in the executable program's data area. In other words, the resources are not immediately addressable by variables in the program's code. Instead, Windows provides functions that explicitly or implicitly load a program's resources into memory so that they can be used-That is said: when program load ,the resource will not load till loadX function run??2.if I create resource in cpp(for example AppendMenu )other than rc file.the above statement is still right?   
  They always be mapped into the executable's address space, and the load functions are used solely to get their address. You don't have the keep the resource "loaded" for instance, instead you can free everything right after getting it's address.This is the case for Win32 at least, I believe they were physically loaded on demand in Win16 and a bit of the legacy API shows through.However since they executable itself is a memory mapped file they probably won't actually be loaded until you access the data. But this is no different from code or any other initialized data in the program.   