首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

INDOWS.H already included解决思路

2012-03-03 
INDOWS.H already included完全的错误信息:c:\programfiles\microsoftvisualstudio\vc98\mfc\include\afxv

INDOWS.H already included
完全的错误信息:
c:\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>
Error   executing   cl.exe.
我找过每个.CPP文件和.h文件,都没有多余的#include   <windows.h>
工程是基本DLG的,调用了ADO,import放在stdafs.h里面,附上afxv_w32.h

#ifdef   _WINDOWS_
#error   WINDOWS.H   already   included.     MFC   apps   must   not   #include   <windows.h>
#endif

//   STRICT   is   the   only   supported   option   (NOSTRICT   is   no   longer   supported)
#ifndef   STRICT
#define   STRICT   1
#endif

//   certain   parts   of   WINDOWS.H   are   necessary
#undef   NOKERNEL
#undef   NOGDI
#undef   NOUSER
#undef   NODRIVERS
#undef   NOLOGERROR
#undef   NOPROFILER
#undef   NOMEMMGR
#undef   NOLFILEIO
#undef   NOOPENFILE
#undef   NORESOURCE
#undef   NOATOM
#undef   NOLANGUAGE
#undef   NOLSTRING
#undef   NODBCS
#undef   NOKEYBOARDINFO
#undef   NOGDICAPMASKS
#undef   NOCOLOR
#undef   NOGDIOBJ
#undef   NODRAWTEXT
#undef   NOTEXTMETRIC
#undef   NOSCALABLEFONT
#undef   NOBITMAP
#undef   NORASTEROPS
#undef   NOMETAFILE
#undef   NOSYSMETRICS
#undef   NOSYSTEMPARAMSINFO
#undef   NOMSG
#undef   NOWINSTYLES
#undef   NOWINOFFSETS
#undef   NOSHOWWINDOW
#undef   NODEFERWINDOWPOS
#undef   NOVIRTUALKEYCODES
#undef   NOKEYSTATES
#undef   NOWH
#undef   NOMENUS
#undef   NOSCROLL
#undef   NOCLIPBOARD
#undef   NOICONS
#undef   NOMB
#undef   NOSYSCOMMANDS
#undef   NOMDI
#undef   NOCTLMGR
#undef   NOWINMESSAGES

#ifndef   WIN32
#define   WIN32
#endif

#ifndef   WIN32_LEAN_AND_MEAN
#define   WIN32_LEAN_AND_MEAN
#endif

#ifdef   _UNICODE
#ifndef   UNICODE
#define   UNICODE                   //   UNICODE   is   used   by   Windows   headers
#endif
#endif

#ifdef   UNICODE
#ifndef   _UNICODE
#define   _UNICODE                 //   _UNICODE   is   used   by   C-runtime/MFC   headers
#endif
#endif

#ifdef   VC_EXTRALEAN
#define   WIN32_EXTRA_LEAN
#define   NOSERVICE
#define   NOMCX
#define   NOIME
#define   NOSOUND
#define   NOCOMM
#define   NOKANJI
#define   NORPC
#define   NOPROXYSTUB
#define   NOIMAGE
#define   NOTAPE

#ifndef   NO_ANSIUNI_ONLY
#ifdef   _UNICODE
#define   UNICODE_ONLY
#else
#define   ANSI_ONLY
#endif
#endif   //!NO_ANSIUNI_ONLY

#endif   //VC_EXTRALEAN

/////////////////////////////////////////////////////////////////////////////
//   Turn   off   warnings   for   /W4
//   To   resume   any   of   these   warning:   #pragma   warning(default:   4xxx)


//   which   should   be   placed   after   the   AFX   include   files

#ifndef   ALL_WARNINGS
#pragma   warning(disable:   4201)     //   winnt.h   uses   nameless   structs
#endif

#define   _WIN32_WINDOWS   0x0500


#undef   WM_MOUSELAST
#define   WM_MOUSELAST   0x0209

#include   <zmouse.h>

struct   HKEY__;
typedef   struct   HKEY__   *HKEY;

#ifndef   _INC_COMMCTRL
#include   <commctrl.h>

//   Note:   We   must   avoid   using   TB_ADDBUTTONW   and   TB_INSERTBUTTONW   in   the   Unicode
//     build   or   else   MFC42U.DLL   will   not   be   compatible   with   pre-IE4   versions   of
//     COMCTL32.DLL.
#ifdef   TB_ADDBUTTONSA
#undef   TB_ADDBUTTONS
#define   TB_ADDBUTTONS   TB_ADDBUTTONSA
#endif

#ifdef   TB_INSERTBUTTONA
#undef   TB_INSERTBUTTON
#define   TB_INSERTBUTTON   TB_INSERTBUTTONA
#endif
#endif

#ifndef   EXPORT
#define   EXPORT
#endif

#ifndef   _INC_TCHAR
#include   <tchar.h>             //   used   for   ANSI   v.s.   UNICODE   abstraction
#endif
#ifdef   _MBCS
#ifndef   _INC_MBCTYPE
#include   <mbctype.h>
#endif
#ifndef   _INC_MBSTRING
#include   <mbstring.h>
#endif
#endif

/////////////////////////////////////////////////////////////////////////////
//   Now   for   the   Windows   API   specific   parts

//   WM_CTLCOLOR   for   16   bit   API   compatability
#define   WM_CTLCOLOR           0x0019

//   Win32   uses   macros   with   parameters   for   this,   which   breaks   C++   code.
#ifdef   GetWindowTask
#undef   GetWindowTask
AFX_INLINE   HTASK   GetWindowTask(HWND   hWnd)
{   return   (HTASK)::GetWindowThreadProcessId(hWnd,   NULL);   }
#endif

//   Win32   uses   macros   with   parameters   for   this,   which   breaks   C++   code.
#ifdef   GetNextWindow
#undef   GetNextWindow
AFX_INLINE   HWND   GetNextWindow(HWND   hWnd,   UINT   nDirection)
{   return   ::GetWindow(hWnd,   nDirection);   }
#endif

//   Avoid   Win95   mapping   CToolBar::DrawState   to   DrawState[A/W]
#ifdef   DrawState
#undef   DrawState
AFX_INLINE   BOOL   WINAPI   DrawState(HDC   hdc,   HBRUSH   hbr,   DRAWSTATEPROC   lpOutputFunc,
LPARAM   lData,   WPARAM   wData,   int   x,   int   y,   int   cx,   int   cy,   UINT   fuFlags)
#ifdef   UNICODE
{   return   ::DrawStateW(hdc,   hbr,   lpOutputFunc,   lData,   wData,   x,   y,   cx,   cy,
fuFlags);   }
#else
{   return   ::DrawStateA(hdc,   hbr,   lpOutputFunc,   lData,   wData,   x,   y,   cx,   cy,
fuFlags);   }
#endif
#endif

//   Avoid   Win95   mapping   CStatusBar::DrawStatusText   to   DrawStatusText[A/W]


#ifdef   DrawStatusText
#undef   DrawStatusText
AFX_INLINE   void   WINAPI   DrawStatusText(HDC   hDC,   LPRECT   lprc,   LPCTSTR   szText,
UINT   uFlags)
#ifdef   UNICODE
{   ::DrawStatusTextW(hDC,   lprc,   szText,   uFlags);   }
#else
{   ::DrawStatusTextA(hDC,   lprc,   szText,   uFlags);   }
#endif
#endif

//   FreeResource   is   not   required   on   Win32   platforms
#undef   FreeResource
AFX_INLINE   BOOL   WINAPI   FreeResource(HGLOBAL)   {   return   TRUE;   }
//   UnlockResource   is   not   required   on   Win32   platforms
#undef   UnlockResource
AFX_INLINE   int   WINAPI   UnlockResource(HGLOBAL)   {   return   0;   }

/////////////////////////////////////////////////////////////////////////////


[解决办法]
呵呵,jf

热点排行