[C++ Error] winsock.h(56): E2015 Ambiguity between 'u_int' and 'Idwinsock2::u_int'
I don't see how that is possible, as there should be no definition of u_int inside of IdWinsock2.hpp at all.
IdWinSock2.hpp
// Borland C++ Builder
// Copyright © 1995, 1999 by Borland International
// All rights reserved
// (DO NOT EDIT: machine generated header) 'IdWinSock2.pas' rev: 5.00
#ifndef IdWinSock2HPP
#define IdWinSock2HPP
#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <IdException.hpp> // Pascal unit
#include <Windows.hpp> // Pascal unit
#include <SysUtils.hpp> // Pascal unit
#include <SysInit.hpp> // Pascal unit
#include <System.hpp> // Pascal unit
//-- user supplied -----------------------------------------------------------
namespace Idwinsock2
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS EIdWS2StubError;
#pragma pack(push, 1)
class PASCALIMPLEMENTATION EIdWS2StubError : public Idexception::EIdException
{
typedef Idexception::EIdException inherited;
protected:
unsigned FWin32Error;
AnsiString FWin32ErrorMessage;
AnsiString FTitle;
public:
__fastcall EIdWS2StubError(const AnsiString ATitle, unsigned AWin32Error);
__property unsigned Win32Error = {read=FWin32Error, nodefault};
__property AnsiString Win32ErrorMessage = {read=FWin32ErrorMessage};
__property AnsiString Title = {read=FTitle};
public:
#pragma option push -w-inl
/* Exception.Create */ inline __fastcall EIdWS2StubError(const AnsiString Msg) : Idexception::EIdException(
Msg) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateFmt */ inline __fastcall EIdWS2StubError(const AnsiString Msg, const System::TVarRec
* Args, const int Args_Size) : Idexception::EIdException(Msg, Args, Args_Size) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateRes */ inline __fastcall EIdWS2StubError(int Ident)/* overload */ : Idexception::EIdException(
Ident) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResFmt */ inline __fastcall EIdWS2StubError(int Ident, const System::TVarRec * Args
, const int Args_Size)/* overload */ : Idexception::EIdException(Ident, Args, Args_Size) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateHelp */ inline __fastcall EIdWS2StubError(const AnsiString Msg, int AHelpContext
) : Idexception::EIdException(Msg, AHelpContext) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateFmtHelp */ inline __fastcall EIdWS2StubError(const AnsiString Msg, const System::TVarRec
* Args, const int Args_Size, int AHelpContext) : Idexception::EIdException(Msg, Args, Args_Size, AHelpContext
) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResHelp */ inline __fastcall EIdWS2StubError(int Ident, int AHelpContext)/* overload */
: Idexception::EIdException(Ident, AHelpContext) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResFmtHelp */ inline __fastcall EIdWS2StubError(System:ResStringRec ResStringRec
, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Idexception::EIdException(
ResStringRec, Args, Args_Size, AHelpContext) { }
#pragma option pop
public:
#pragma option push -w-inl
/* TObject.Destroy */ inline __fastcall virtual ~EIdWS2StubError(void) { }
#pragma option pop
};
#pragma pack(pop)
typedef Byte u_char;
typedef Word u_short;
typedef int u_int;
typedef unsigned u_long;
typedef int TSocket;
typedef unsigned wsaevent;
typedef unsigned *Pwsaevent;
Where would {$EXTERNALSYM} appear? At each definition?
I don't see how that is possible, as there should be no definition of u_int inside of IdWinsock2.hpp at all.
IdWinSock2.hpp
// Borland C++ Builder
// Copyright © 1995, 1999 by Borland International
// All rights reserved
// (DO NOT EDIT: machine generated header) 'IdWinSock2.pas' rev: 5.00
#ifndef IdWinSock2HPP
#define IdWinSock2HPP
#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <IdException.hpp> // Pascal unit
#include <Windows.hpp> // Pascal unit
#include <SysUtils.hpp> // Pascal unit
#include <SysInit.hpp> // Pascal unit
#include <System.hpp> // Pascal unit
//-- user supplied -----------------------------------------------------------
namespace Idwinsock2
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS EIdWS2StubError;
#pragma pack(push, 1)
class PASCALIMPLEMENTATION EIdWS2StubError : public Idexception::EIdException
{
typedef Idexception::EIdException inherited;
protected:
unsigned FWin32Error;
AnsiString FWin32ErrorMessage;
AnsiString FTitle;
public:
__fastcall EIdWS2StubError(const AnsiString ATitle, unsigned AWin32Error);
__property unsigned Win32Error = {read=FWin32Error, nodefault};
__property AnsiString Win32ErrorMessage = {read=FWin32ErrorMessage};
__property AnsiString Title = {read=FTitle};
public:
#pragma option push -w-inl
/* Exception.Create */ inline __fastcall EIdWS2StubError(const AnsiString Msg) : Idexception::EIdException(
Msg) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateFmt */ inline __fastcall EIdWS2StubError(const AnsiString Msg, const System::TVarRec
* Args, const int Args_Size) : Idexception::EIdException(Msg, Args, Args_Size) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateRes */ inline __fastcall EIdWS2StubError(int Ident)/* overload */ : Idexception::EIdException(
Ident) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResFmt */ inline __fastcall EIdWS2StubError(int Ident, const System::TVarRec * Args
, const int Args_Size)/* overload */ : Idexception::EIdException(Ident, Args, Args_Size) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateHelp */ inline __fastcall EIdWS2StubError(const AnsiString Msg, int AHelpContext
) : Idexception::EIdException(Msg, AHelpContext) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateFmtHelp */ inline __fastcall EIdWS2StubError(const AnsiString Msg, const System::TVarRec
* Args, const int Args_Size, int AHelpContext) : Idexception::EIdException(Msg, Args, Args_Size, AHelpContext
) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResHelp */ inline __fastcall EIdWS2StubError(int Ident, int AHelpContext)/* overload */
: Idexception::EIdException(Ident, AHelpContext) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResFmtHelp */ inline __fastcall EIdWS2StubError(System:ResStringRec ResStringRec
, const System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Idexception::EIdException(
ResStringRec, Args, Args_Size, AHelpContext) { }
#pragma option pop
public:
#pragma option push -w-inl
/* TObject.Destroy */ inline __fastcall virtual ~EIdWS2StubError(void) { }
#pragma option pop
};
#pragma pack(pop)
typedef Byte u_char;
typedef Word u_short;
typedef int u_int;
typedef unsigned u_long;
typedef int TSocket;
typedef unsigned wsaevent;
typedef unsigned *Pwsaevent;
Where would {$EXTERNALSYM} appear? At each definition?