当我加入#include <afx.h>编译报错:D:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE\afxv_w32.h(14) : fatal error C1189: #error :  WINDOWS.H already included.  MFC apps must not #include <windows.h>我找过来,整个project中只有一个#include <windows.h>,当我将其注销掉的时候,编译还是出现同样的错误。急。

解决方案 »

  1.   

    这是因为头文件重复加载或冲突原因造成的,你检查一下你所需要的头文件中是否有两个是不能共存的,另外到AFXV_W32.H中找一下有没有WINDOWS.H
      

  2.   

    #include <afx.h>放在stdafx.h中
      

  3.   

    呵呵,谢谢!我都试过了,不行!最后我放弃了用CFile,我用最原始的fputs,来写文件,呵呵,原来也很方便!^_^!关于上面的问题,真的很怪,而且,据我已同学告知,他在使用CFile的时候,根本就不需要加
    #include <afx.h>头文件。烦请高手指点
      

  4.   

    使用CFile的时候,根本就不需要加
    #include <afx.h>头文件 因为
    "stdafx.h"里面的#include <afxwin.h>    涵盖了该文件,
    所以如果你再加入就是重复加入就会报错
      

  5.   

    afxwin.h的代码可以自己看是这样的:
    // This is a part of the Microsoft Foundation Classes C++ library.
    // Copyright (C) 1992-1998 Microsoft Corporation
    // All rights reserved.
    //
    // This source code is only intended as a supplement to the
    // Microsoft Foundation Classes Reference and related
    // electronic documentation provided with the library.
    // See these sources for detailed information regarding the
    // Microsoft Foundation Classes product.#ifndef __AFXWIN_H__
    #ifndef RC_INVOKED
    #define __AFXWIN_H__/////////////////////////////////////////////////////////////////////////////
    // Make sure 'afx.h' is included first#ifndef __AFX_H__
    #include <afx.h>
    #endif
    ;;;;;;;;;;;;;
      

  6.   

    事实上,我得project中并没有#include <afxwin.h>    
    下面是我搜索所有的含#include的行,是否有其它的头文件也出现了此类的问题?
    出现这样的问题,有什么更好的方法?我被这个问题困惑了两天,没有办法,最终只好选择了fputs。Searching for 'include'...
    F:\project-ie\OOo_IE_Plus\IEHelper.cpp(10):#include "resource.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.cpp(11):#include "initguid.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.cpp(12):#include "stdafx.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.cpp(13):#include "IEHelper.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.cpp(15):#include "IEHelper_i.c"
    F:\project-ie\OOo_IE_Plus\IEHelper.cpp(16):#include "IEHlprObj.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.h(19):#include "rpc.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.h(20):#include "rpcndr.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.h(27)://#include "windows.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.h(28)://#include "ole2.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.h(59):#include "oaidl.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.h(60):#include "ocidl.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(3):#include "resource.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(8):// Generated from the TEXTINCLUDE 2 resource.
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(10):#include "winres.h"
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(27):// TEXTINCLUDE
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(30):1 TEXTINCLUDE DISCARDABLE 
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(35):2 TEXTINCLUDE DISCARDABLE 
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(37):    "#include ""winres.h""\r\n"
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(41):3 TEXTINCLUDE DISCARDABLE 
    F:\project-ie\OOo_IE_Plus\IEHelper.rc(153):// Generated from the TEXTINCLUDE 3 resource.
    F:\project-ie\OOo_IE_Plus\IEHelper_p.c(22):#include "rpcproxy.h"
    F:\project-ie\OOo_IE_Plus\IEHelper_p.c(28):#include "IEHelper.h"
    F:\project-ie\OOo_IE_Plus\IEHlprObj.cpp(3):#include "stdafx.h"
    F:\project-ie\OOo_IE_Plus\IEHlprObj.cpp(4):#include "IEHelper.h"
    F:\project-ie\OOo_IE_Plus\IEHlprObj.cpp(5):#include "IEHlprObj.h"
    F:\project-ie\OOo_IE_Plus\IEHlprObj.cpp(6):#include "ExDispID.h"
    F:\project-ie\OOo_IE_Plus\IEHlprObj.cpp(7):#include <strstrea.h>
    F:\project-ie\OOo_IE_Plus\IEHlprObj.cpp(8):#include <stdio.h>
    F:\project-ie\OOo_IE_Plus\IEHlprObj.h(6):#include "resource.h"       // main symbols
    F:\project-ie\OOo_IE_Plus\IEHlprObj.h(7):#include "ExDisp.h"
    F:\project-ie\OOo_IE_Plus\StdAfx.cpp(1):// stdafx.cpp : source file that includes just the standard includes
    F:\project-ie\OOo_IE_Plus\StdAfx.cpp(5):#include "stdafx.h"
    F:\project-ie\OOo_IE_Plus\StdAfx.cpp(8):#include <statreg.h>
    F:\project-ie\OOo_IE_Plus\StdAfx.cpp(9):#include <statreg.cpp>
    F:\project-ie\OOo_IE_Plus\StdAfx.cpp(12):#include <atlimpl.cpp>
    F:\project-ie\OOo_IE_Plus\StdAfx.cpp(13):#include <atlwin.cpp>
    F:\project-ie\OOo_IE_Plus\StdAfx.h(1):// stdafx.h : include file for standard system include files,
    F:\project-ie\OOo_IE_Plus\StdAfx.h(2)://      or project specific include files that are used frequently,
    F:\project-ie\OOo_IE_Plus\StdAfx.h(5):#if !defined(AFX_STDAFX_H__CE7C3CE6_4B15_11D1_ABED_709549C10000__INCLUDED_)
    F:\project-ie\OOo_IE_Plus\StdAfx.h(6):#define AFX_STDAFX_H__CE7C3CE6_4B15_11D1_ABED_709549C10000__INCLUDED_
    F:\project-ie\OOo_IE_Plus\StdAfx.h(18):#include <atlbase.h>
    F:\project-ie\OOo_IE_Plus\StdAfx.h(23):#include <atlcom.h>
    F:\project-ie\OOo_IE_Plus\StdAfx.h(24)://#include <atlwin.h>  // Dialog box functionality
    F:\project-ie\OOo_IE_Plus\StdAfx.h(29):#endif // !defined(AFX_STDAFX_H__CE7C3CE6_4B15_11D1_ABED_709549C10000__INCLUDED)
    F:\project-ie\OOo_IE_Plus\dlldata.c(16):#include <rpcproxy.h>
    F:\project-ie\OOo_IE_Plus\resource.h(2):// Microsoft Developer Studio generated include file.
    47 occurrence(s) have been found.
      

  7.   

    我也出現了錯誤,如下:
    我的win32 consloe工程中加入了#include <comdef.h>  //for database,則編譯錯誤:
    d:\visual studio\vc98\include\comdef.h(17) : fatal error C1189: #error :  Native Compiler support only available in C++ compiler又在此之前加入:
    #define _cplusplus
    還是出錯,吼吼,我不知道是不是需要把那些.c文件全都變成.cpp文件?
      

  8.   

    我也遇到这种情况,后来我改用ODBC了不使用ADO了希望高手指点迷真!http://www.haiyu.org