请教各位高手一个基础的小问题,我在学习SDK的时候突然想到一个问题,一个很基础的显示一个窗口的程序里
LRESULT CALLBACK WinProc(HWND hwnd,
                         UINT msg,
                         WPARAM wparam,
       LPARAM lparam))
{
.....
}
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   PSTR lpcmdline,
                   int szcmdshow)
{
  ......
}
有个地方没想明白的是,hinstance参数是句柄的值,但是这个值是哪里来的,怎么传给它的,是系统随机生成传给它的么?如果是系统随机生成的,那么系统在调用WINMAIN函数的时候就自动的按顺序给那4个参数都赋值了么??耽误大家的时间了,谢谢~~~

解决方案 »

  1.   

    等于是系统开辟一块内存给主函数,然后把地址自动就传给HINSTANCE了么?
      

  2.   

    HINSTANCE只是一個句柄而已,和茶壺柄的用處是一樣的,因為通過“柄”來拿茶壺是最方便的,當然你也可以通過茶壺身或茶壺嘴去拿茶壺。當然你也可以通過煩瑣的方法,譬如獲取指針來訪問Instance。HINSTANCE當然是windows分配的,Windows造了一把“茶壺”,然後把“柄”給你了。
      

  3.   

    djsky(Roy) ( ) 信誉:100 
    已讲得非常形象!
      

  4.   

    呵呵,很形象的比喻,非常感谢,那么就是说在进入主函数的时候,系统就给instance赋了一个内存地址的值,然后再根据后面的注册窗口类得到窗口的具体相关数据,在预先分配好的那块内存里把窗口构建出来,是这样理解的么?