Win16到Win32的变化,不是一句话可以说清的,建议你多多注意以下变化:
1、使用Win32的API形式(如用MoveToEx代替MoveTo,建议多查查MSDN)
2、WinMain参数hPrevInstance在Win32中不代表其他实例,应该用FindWindow或共享类和对象来阻止运行第二个实例。
3、Win32中GlobalAlloc,LocalAlloc,malloc,new都是在进程的默认堆中分配内存,所以没有实质区别。而且指针现在是32位的,不存在Far,Near,Huge...的区别。此外,上叙函数不会返回按64k对准的指针。
4、非内核对象及窗口句柄都不可在进程间共享,比如GDI对象,而内核对象的共享有特殊的方法。
5、有些类型在Win32中有唯一定义:比如HPEN,HWND,而不是原来的HANDLE或int.
6、注意一些类型长度的变化,如long,int在Win32中都是32位,尽量用与版本无关的类型如BYTE,WORD,DWORD。
7、注意Unicode与ANSI字符的区别,在Win16里没有这种区别。
总之,多看看MSDN,特别是在编译不过去时,其实主要的编程思想是相同的,主要是一些很琐碎的区别啦。

解决方案 »

  1.   

    非常感谢In355Hz(好像一条狗),您的热心让我增强了信心,我一定会努力把这个任务解决的,给您加分.
    By the way,我水平实在很菜,您的回复中我仍有很多看不懂,您能不能再给我指点一下有关书籍?我现在C++语法较熟,windows编程知道大概,现在正看Programming Windows(Charles Petzold 著). 
      

  2.   

    看看《Windows核心编程》吧,此外《Win32 API参考手册》也不错,可以有个较全面的了解。