Merge branch 'Network' of https://github.com/dean11/Danbias into Network
This commit is contained in:
commit
bbb79a4ba9
|
@ -10,6 +10,8 @@ ThreadedClient::ThreadedClient()
|
|||
this->connection = new Connection();
|
||||
this->sendPostBox = new PostBox<SmartPointer<OysterByte>>();
|
||||
this->recvPostBox = NULL;
|
||||
|
||||
connection->SetBlockingMode(false);
|
||||
}
|
||||
|
||||
ThreadedClient::ThreadedClient(unsigned int socket)
|
||||
|
|
|
@ -0,0 +1,296 @@
|
|||
/////////////////////////////////////////////////////////////////////
|
||||
// Created by [Dennis Andersen] [2013]
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
#include "CustomNetProtocol.h"
|
||||
#include <map>
|
||||
|
||||
using namespace Network;
|
||||
|
||||
enum NetContainerType
|
||||
{
|
||||
NetContainer_Array,
|
||||
NetContainer_Single,
|
||||
NetContainer_UNKNOWN,
|
||||
};
|
||||
struct NetAttributeArray
|
||||
{
|
||||
NetAttributeContainer *value;
|
||||
int count;
|
||||
NetAttributeArray()
|
||||
:value(0)
|
||||
, count(0)
|
||||
{}
|
||||
};
|
||||
union NetAttributeData
|
||||
{
|
||||
struct { NetAttributeContainer singleVal; };
|
||||
struct { NetAttributeArray arrayVal; };
|
||||
};
|
||||
struct NetDataValue
|
||||
{
|
||||
NetContainerType containerType;
|
||||
NetAttributeData attributeData;
|
||||
NetDataValue()
|
||||
{
|
||||
//memset(&attributeData, 0, sizeof(NetAttributeData));
|
||||
containerType = NetContainer_UNKNOWN;
|
||||
attributeData.singleVal.type = NetAttributeType_UNKNOWN;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct CustomNetProtocol::PrivateData
|
||||
{
|
||||
std::map<int, NetDataValue> attributes;
|
||||
//DataValue *val;
|
||||
//unsigned int size;
|
||||
|
||||
PrivateData()
|
||||
{
|
||||
//val = new DataValue[_size];
|
||||
//size = _size;
|
||||
}
|
||||
~PrivateData()
|
||||
{
|
||||
for (auto i = attributes.begin(); i != attributes.end(); i++)
|
||||
{
|
||||
RemoveAttribute(i->first);
|
||||
}
|
||||
}
|
||||
void RemoveAttribute(int ID)
|
||||
{
|
||||
auto i = attributes.find(ID);
|
||||
if(i == attributes.end()) return;
|
||||
|
||||
if(i->second.containerType == NetContainer_Single)
|
||||
{
|
||||
switch (i->second.attributeData.singleVal.type)
|
||||
{
|
||||
case NetAttributeType_CharArray:
|
||||
delete [] i->second.attributeData.singleVal.value.netCharPtr;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(i->second.containerType == NetContainer_Array)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Do network stuff
|
||||
};
|
||||
|
||||
|
||||
CustomNetProtocol::CustomNetProtocol()
|
||||
{
|
||||
this->privateData = new PrivateData();
|
||||
}
|
||||
CustomNetProtocol::~CustomNetProtocol()
|
||||
{
|
||||
delete this->privateData;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::operator[](int ID)
|
||||
{
|
||||
NetAttributeContainer *retVal = 0;
|
||||
|
||||
if(this->privateData->attributes.find(ID) == this->privateData->attributes.end())
|
||||
return retVal;
|
||||
|
||||
if(this->privateData->attributes[ID].containerType == NetContainer_Single)
|
||||
retVal = &this->privateData->attributes[ID].attributeData.singleVal;
|
||||
|
||||
if(this->privateData->attributes[ID].containerType == NetContainer_Array)
|
||||
retVal = this->privateData->attributes[ID].attributeData.arrayVal.value;
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(NetAttributeContainer val, short ID)
|
||||
{
|
||||
if(val.type == NetAttributeType_UNKNOWN) return 0;
|
||||
|
||||
this->privateData->RemoveAttribute(ID);
|
||||
|
||||
this->privateData->attributes[ID].attributeData.singleVal = val;
|
||||
|
||||
return &this->privateData->attributes[ID].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(NetAttributeValue value, NetAttributeType type, short ID)
|
||||
{
|
||||
if(type == NetAttributeType_UNKNOWN) return 0;
|
||||
|
||||
this->privateData->RemoveAttribute(ID);
|
||||
|
||||
this->privateData->attributes[ID].attributeData.singleVal.value = value;
|
||||
this->privateData->attributes[ID].attributeData.singleVal.type = type;
|
||||
|
||||
return &this->privateData->attributes[ID].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const bool & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netBool = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Bool;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const char & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netChar = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Char;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const unsigned char & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netUChar = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_UnsignedChar;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const short & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netShort = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Short;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const unsigned short & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netUShort = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_UnsignedShort;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const int & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netInt = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Int;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const unsigned int & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netUInt = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_UnsignedInt;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const __int64 & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netInt64 = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Int64;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const unsigned __int64 & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netUInt64 = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_UnsignedInt64;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const float & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netFloat = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Float;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const double & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netDouble = attribute;
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_Double;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const std::string & attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netCharPtr = _strdup(attribute.c_str());
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_CharArray;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
NetAttributeContainer* CustomNetProtocol::BuildValue(const char* attribute, short attributeId)
|
||||
{
|
||||
this->privateData->RemoveAttribute(attributeId);
|
||||
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.value.netCharPtr = _strdup(attribute);
|
||||
this->privateData->attributes[attributeId].attributeData.singleVal.type = NetAttributeType_CharArray;
|
||||
this->privateData->attributes[attributeId].containerType = NetContainer_Single;
|
||||
|
||||
return &this->privateData->attributes[attributeId].attributeData.singleVal;
|
||||
}
|
||||
|
||||
|
||||
//void CustomNetProtocol::SetArrayValue(NetAttributeContainer attribute[], unsigned int attributeCount, int ID)
|
||||
//{
|
||||
// if(this->privateData->attributes.find(ID) == this->privateData->attributes.end())
|
||||
// {
|
||||
// this->privateData->attributes[ID] = NetDataValue();
|
||||
// }
|
||||
//
|
||||
// if(this->privateData->attributes[ID].containerType == NetContainer_UNKNOWN)
|
||||
// this->privateData->attributes[ID].containerType = NetContainer_Array;
|
||||
//
|
||||
// this->privateData->attributes[ID].attributeData.arrayVal.value = attribute;
|
||||
//}
|
||||
|
||||
NetAttributeContainer& CustomNetProtocol::GetSingleValue(int attributeID)
|
||||
{
|
||||
return this->privateData->attributes[attributeID].attributeData.singleVal;
|
||||
}
|
||||
//NetAttributeContainer* CustomNetProtocol::GetArrayValue(int attributeID)
|
||||
//{
|
||||
// return this->privateData->attributes[attributeID].attributeData.arrayVal.value;
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,118 @@
|
|||
/////////////////////////////////////////////////////////////////////
|
||||
// Created by [Dennis Andersen] [2013]
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
#ifndef NETWORK_CUSTOM_NETWORK_PROTOCOL_H
|
||||
#define NETWORK_CUSTOM_NETWORK_PROTOCOL_H
|
||||
|
||||
#include <string>
|
||||
|
||||
#ifdef CUSTOM_NET_PROTOCOL_EXPORT
|
||||
#define NET_PROTOCOL_EXPORT __declspec(dllexport)
|
||||
#else
|
||||
#define NET_PROTOCOL_EXPORT __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
namespace Network
|
||||
{
|
||||
extern "C"
|
||||
{
|
||||
enum NetAttributeType
|
||||
{
|
||||
NetAttributeType_Bool,
|
||||
NetAttributeType_Char,
|
||||
NetAttributeType_UnsignedChar,
|
||||
NetAttributeType_Short,
|
||||
NetAttributeType_UnsignedShort,
|
||||
NetAttributeType_Int,
|
||||
NetAttributeType_UnsignedInt,
|
||||
NetAttributeType_Int64,
|
||||
NetAttributeType_UnsignedInt64,
|
||||
NetAttributeType_Float,
|
||||
NetAttributeType_Double,
|
||||
NetAttributeType_CharArray,
|
||||
NetAttributeType_UNKNOWN,
|
||||
};
|
||||
union NetAttributeValue
|
||||
{
|
||||
bool netBool;
|
||||
char netChar;
|
||||
unsigned char netUChar;
|
||||
short netShort;
|
||||
unsigned short netUShort;
|
||||
int netInt;
|
||||
unsigned int netUInt;
|
||||
__int64 netInt64;
|
||||
unsigned __int64 netUInt64;
|
||||
float netFloat;
|
||||
double netDouble;
|
||||
char* netCharPtr;
|
||||
|
||||
NetAttributeValue(){ memset(this, 0, sizeof(NetAttributeValue)); }
|
||||
NetAttributeValue(bool v) : netBool (v) {}
|
||||
NetAttributeValue(char v) : netChar (v) {}
|
||||
NetAttributeValue(unsigned char v) : netUChar (v) {}
|
||||
NetAttributeValue(short v) : netShort (v) {}
|
||||
NetAttributeValue(unsigned short v) : netUShort (v) {}
|
||||
NetAttributeValue(int v) : netInt (v) {}
|
||||
NetAttributeValue(unsigned int v) : netUInt (v) {}
|
||||
NetAttributeValue(__int64 v) : netInt64 (v) {}
|
||||
NetAttributeValue(unsigned __int64 v) : netUInt64 (v) {}
|
||||
NetAttributeValue(float v) : netFloat (v) {}
|
||||
NetAttributeValue(double v) : netDouble (v) {}
|
||||
NetAttributeValue(char* v) : netCharPtr(v) {}
|
||||
};
|
||||
struct NetAttributeContainer
|
||||
{
|
||||
NetAttributeType type;
|
||||
NetAttributeValue value;
|
||||
NetAttributeContainer() { type = NetAttributeType_UNKNOWN; }
|
||||
};
|
||||
class NET_PROTOCOL_EXPORT CustomNetProtocol
|
||||
{
|
||||
public:
|
||||
CustomNetProtocol();
|
||||
~CustomNetProtocol();
|
||||
|
||||
NetAttributeContainer* operator[](int ID);
|
||||
|
||||
NetAttributeContainer* BuildValue(NetAttributeContainer value, short attributeId);
|
||||
NetAttributeContainer* BuildValue(NetAttributeValue value, NetAttributeType type, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const bool & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const char & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const unsigned char & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const short & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const unsigned short & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const int & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const unsigned int & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const __int64 & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const unsigned __int64 & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const float & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const double & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const std::string & attribute, short attributeId);
|
||||
NetAttributeContainer* BuildValue(const char * attribute, short attributeId);
|
||||
|
||||
//void SetArrayValue(NetAttributeContainer attribute[], unsigned int attributeCount, int attributeId);
|
||||
|
||||
NetAttributeContainer& GetSingleValue(int attributeID);
|
||||
//NetAttributeContainer* GetArrayValue(int attributeID);
|
||||
|
||||
private:
|
||||
struct PrivateData;
|
||||
PrivateData* privateData;
|
||||
};
|
||||
|
||||
}//End extern "C"
|
||||
} //End namespace Network
|
||||
#endif // !NETWORK_CUSTOM_NETWORK_PROTOCOL_H
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{460D625F-2AC9-4559-B809-0BA89CEAEDF4}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>NetworkProtocol</RootNamespace>
|
||||
<ProjectName>NetworkProtocol</ProjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v110</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
|
||||
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
|
||||
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
<IncludePath>C:\Program Files %28x86%29\Visual Leak Detector\include;$(IncludePath)</IncludePath>
|
||||
<LibraryPath>C:\Program Files %28x86%29\Visual Leak Detector\lib\Win32;$(LibraryPath)</LibraryPath>
|
||||
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
|
||||
<TargetName>$(ProjectName)_$(PlatformShortName)D</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
|
||||
<TargetName>$(ProjectName)_$(PlatformShortName)</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<IntDir>$(SolutionDir)..\Obj\$(ProjectName)\$(PlatformShortName)\$(Configuration)\</IntDir>
|
||||
<OutDir>$(SolutionDir)..\Bin\DLL\</OutDir>
|
||||
<TargetName>$(ProjectName)_$(PlatformShortName)</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>CUSTOM_NET_PROTOCOL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>CUSTOM_NET_PROTOCOL_EXPORT;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>CUSTOM_NET_PROTOCOL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>CUSTOM_NET_PROTOCOL_EXPORT;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<SDLCheck>true</SDLCheck>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="CustomNetProtocol.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="CustomNetProtocol.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
Loading…
Reference in New Issue