Jump to content

fatal error C1189: #error : WINDOWS.H already included....

- - - - -

This topic has been archived. This means that you cannot reply to this topic.
1 reply to this topic

#1
diyora

diyora

    Newbie

  • Members
  • Pip
  • 1 posts
Hello all,

My stdafx.h file contain:
#pragma once

// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER // Allow use of features specific to Windows XP or later.
#define WINVER 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif
#ifndef _WIN32_WINNT // Allow use of features specific to Windows XP or later. 
#define _WIN32_WINNT 0x0501 // Change this to the appropriate value to target other versions of Windows.
#endif 
#ifndef _WIN32_WINDOWS // Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif
#ifndef _WIN32_IE // Allow use of features specific to IE 6.0 or later.
#define _WIN32_IE 0x0600 // Change this to the appropriate value to target other versions of IE.
#endif
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>
// C RunTime Header Files
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <tchar.h>
My abc.h file contain:
#include <afxwin.h>
#include <stdio.h>
#include <winsock2.h>
#include <conio.h> 
#include <iostream>
using namespace std;

class CIPMessage
{
public:
CIPMessage();
~CIPMessage();
void Init(string sIpAddress, int iPort);
int SendMessagePort(string sMessage);
int RecMessagePort();
bool IsConnected(){return m_bIsConnected;}
private:
bool m_bIsConnected; // true - connected false - not connected
string m_sServerIPAddress;
int m_iServerPort;
SOCKET conn; // socket connected to server
};
I define this both header file in my main source file.But it give me an error:
c:\program files\microsoft visual studio 8\vc\atlmfc\include\afxv_w32.h(16) : fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>.

I see the related question and change corresponds.but it give me error.When i remove the windows.h then write afxwin.h then main source file some variable undeclared identifier.

please help me..

Edited by v0id, 06 May 2008 - 03:34 AM.
Remember the code-tags!


#2
Guest_Jordan_*

Guest_Jordan_*
  • Guests
Including afxwin.h as the first include should fix the problem although your code already contains it as the first include. afxwin includes many other files which thus include afxv_w32.h. The afxv_w32.h contains this code:

#ifdef _WINDOWS_
#error WINDOWS.H already included.  MFC apps must not #include
#endif

Which basically states that if windows.h is already included throw an error.

I don't know specifically know how to fix your problem but I hope this helps.