1 为什么说Windows3.1是非强制性多任务的OS,而windows98/NT 等是强制性多任务的OS?
2 为什么 Windows Programming Modal 要把窗口函式设计为
   一个 call back 函式?为什么不让程序在抓到讯息(GetMessage)之后直接呼叫它就好
   了?

解决方案 »

  1.   

    简单的说,操作系统对应用程序内存操作权限的管理,可以分为强制性和非强制性。DOS是典型的非强制性操作系统,任何程序都可以操作任何内存,甚至修改系统中断。windows3.1 是利用DOS的内核,加上分时处理,同时运行多个程序,程序照样可以访问几乎任何内存。windows98/nt都有明确的系统空间和应用程序空间,应用程序不得任意访问系统空间,否则就会出现著名的非法操作。所以他们是强制性的多任务操作系统
      

  2.   

    第二个问题我不是很明白你的意思,我猜可能是为了避免在窗口没有创建之前就对窗口内控件进行操作,导致错误发生。因为创建窗口还是一个比较复杂的过程,最好是使用 CALL BACK 这样的方法实现一定程度的“封装”,以减少出错的可能。