我写了一个类,头文件包含了<windows.h>,然后它要用到我一个对话框窗口类对象,所以我把<afxwin.h>也包含到头文件中,我的这个对话框类需要使用这个类,所以又把该类头文件包含到该对话框头文件中,然后编译了一下是没问题,可我听说当包含了<windows.h>再包含<afxwin.h>后会有冲突,请问这种冲突发生在什么时候啊,什么情况下会发生呢?

解决方案 »

  1.   

    这个文件包括大部分的Win32 API函数,以及一些Win32宏。具体文件内容你可以找到“C:\Program Files\Microsoft Visual Studio\VC98\Include\WINDOWS.H”也就是vc安装目录下面.SDK   程式只要含入WINDOWS.H   就好
    afxwin.h会调用windows.h是MFC编程的途径,只要用到MFC就一定要包含它。
    afxwin.h用来宣布MFC的所有类,他会调用windows.h程序在编译时需要加入所有的.h文件,这需要大量的时间,precompiled   file文件用来存放第一次所有.h文件的编译结果,以后编译时就可直接调用.而stdafx.h文件作为precomplied   file.因此包含了编译时所需的.h文件所以不存在什么冲突亚。并且vc提供的预编译处理文件,包含一些在编译之前处理的头文件,提高编译速度,   
      避免重复编译
      

  2.   

    包含AfxWin.h之后不需要包含windows.h。如果包含了就要注意顺序。