Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
318
Server/DBProcess/ConvertTwoNation/ConvertTwoNation.cpp
Normal file
318
Server/DBProcess/ConvertTwoNation/ConvertTwoNation.cpp
Normal file
@@ -0,0 +1,318 @@
|
||||
// ConvertTwoNation.cpp : <20>ܼ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
//
|
||||
|
||||
#pragma warning(disable:4800)
|
||||
|
||||
#include "stdafx.h"
|
||||
#include <atldbcli.h>
|
||||
#include <sqloledb.h>
|
||||
#include <Log/ServerLog.h>
|
||||
#include <RylDBLibrary/RylDBCharCommand.h>
|
||||
#include <RylDBLibrary/RylDBLibrary.h>
|
||||
|
||||
#include <Community/FriendList.h>
|
||||
#include <Community/BanList.h>
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
#include <ctime>
|
||||
#include <hash_map>
|
||||
|
||||
#include <boost/pool/pool_alloc.hpp>
|
||||
|
||||
#define LOG_CONVERT0(str) { ERRLOG0(g_Log, (str)); printf(str "\n"); }
|
||||
#define LOG_CONVERT1(str, arg1) { ERRLOG1(g_Log, (str), (arg1)); printf(str "\n", (arg1)); }
|
||||
#define LOG_CONVERT2(str, arg1, arg2) { ERRLOG2(g_Log, (str), (arg1), (arg2)); printf(str "\n", (arg1), (arg2)); }
|
||||
|
||||
class CRemoveOtherNation : public IDBFriendProcess
|
||||
{
|
||||
public:
|
||||
|
||||
typedef stdext::hash_map<unsigned long, unsigned long,
|
||||
stdext::hash_compare<unsigned long, std::less<unsigned long> >,
|
||||
boost::fast_pool_allocator<std::pair<unsigned long, unsigned long> > > CIDRaceMap;
|
||||
|
||||
CRemoveOtherNation(ATL::CSession& session) : m_Session(session) { }
|
||||
~CRemoveOtherNation() { }
|
||||
|
||||
HRESULT Initialize();
|
||||
|
||||
virtual ConvertResult operator() (RylDBCommand::CFriendData& friendData);
|
||||
|
||||
private:
|
||||
|
||||
ATL::CSession& m_Session;
|
||||
CIDRaceMap m_CIDRaceMap;
|
||||
};
|
||||
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
// DB<44><42> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
// <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
// <20>α<CEB1> <20>м<EFBFBD><D0BC>ؼ<EFBFBD> <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> Row<6F><77> <20>ִ´<D6B4>.
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Log<6F><67> <20>м<EFBFBD><D0BC>ؼ<EFBFBD> <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20>ֵ<EFBFBD><D6B5><EFBFBD> <20>Ѵ<EFBFBD>. <20><><EFBFBD>߿<EFBFBD> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD><DFB0>Ѵ<EFBFBD>.
|
||||
|
||||
if (5 != argc)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
CoInitialize(0);
|
||||
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
ATL::CDataSource ds;
|
||||
ATL::CSession session;
|
||||
ATL::CDBPropSet dsPropSet;
|
||||
|
||||
dsPropSet.SetGUID(DBPROPSET_DBINIT);
|
||||
dsPropSet.AddProperty(DBPROP_INIT_DATASOURCE, argv[1]);
|
||||
dsPropSet.AddProperty(DBPROP_INIT_CATALOG, argv[2]);
|
||||
dsPropSet.AddProperty(DBPROP_AUTH_USERID, argv[3]);
|
||||
dsPropSet.AddProperty(DBPROP_AUTH_PASSWORD, argv[4]);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD><CDBA>̽<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (FAILED(hr = ds.Open(CLSID_SQLOLEDB, &dsPropSet, 1)))
|
||||
{
|
||||
LOG_CONVERT1("Connect DB failed : hr:0%08x", hr);
|
||||
}
|
||||
else if (FAILED(hr = session.Open(ds)))
|
||||
{
|
||||
LOG_CONVERT1("Connect Session failed : hr:0x%08x", hr);
|
||||
}
|
||||
else if (FAILED(hr = session.StartTransaction()))
|
||||
{
|
||||
LOG_CONVERT1("Start transaction failed : hr:0x%08x", hr);
|
||||
}
|
||||
else
|
||||
{
|
||||
try
|
||||
{
|
||||
CRylDBProcess dbProcess(session);
|
||||
CConsoleCounter consoleCounter(1000);
|
||||
CRemoveOtherNation remove(session);
|
||||
|
||||
if (FAILED(hr = remove.Initialize()))
|
||||
{
|
||||
LOG_CONVERT1("Data initialize failed : hr:0x%08x", hr);
|
||||
}
|
||||
else if (FAILED(hr = dbProcess.Friend(remove, consoleCounter)))
|
||||
{
|
||||
LOG_CONVERT1("Friend process failed : hr:0x%08x", hr);
|
||||
}
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
LOG_CONVERT0("Exception occured! rollback transaction now!");
|
||||
LOG_CONVERT2("Rollback transaction %s! : hr:0x%08x",
|
||||
FAILED(hr = session.Abort()) ? "failed" : "succeeded", hr);
|
||||
}
|
||||
|
||||
LOG_CONVERT0("Commit transaction now!");
|
||||
LOG_CONVERT2("Commit transaction %s! : hr:0x%08x",
|
||||
FAILED(hr = session.Commit()) ? "failed" : "succeeded", hr);
|
||||
}
|
||||
|
||||
session.Close();
|
||||
ds.Close();
|
||||
|
||||
CoUninitialize();
|
||||
return 0;
|
||||
}
|
||||
|
||||
HRESULT CRemoveOtherNation::Initialize()
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
ATL::CCommand<ATL::CDynamicAccessor,
|
||||
ATL::CBulkRowset, ATL::CMultipleResults> getCharRace;
|
||||
|
||||
getCharRace.SetRows(1000000);
|
||||
|
||||
if (FAILED(hr = getCharRace.Open(m_Session, "SELECT CID, Race FROM dbo.CharInfo")))
|
||||
{
|
||||
LOG_CONVERT1("Read Race from CharInfo failed : hr:0x%08x", hr);
|
||||
}
|
||||
else
|
||||
{
|
||||
int nCount = 0;
|
||||
|
||||
DWORD nCID = 0;
|
||||
BYTE nRace = 0;
|
||||
|
||||
hr = getCharRace.MoveFirst( );
|
||||
while (SUCCEEDED(hr) && hr != DB_S_ENDOFROWSET)
|
||||
{
|
||||
getCharRace.GetValue(1, &nCID);
|
||||
getCharRace.GetValue(2, &nRace);
|
||||
|
||||
m_CIDRaceMap.insert(CIDRaceMap::value_type(nCID, nRace));
|
||||
hr = getCharRace.MoveNext();
|
||||
|
||||
if (0 == (++nCount % 1000)) { printf("Read race info : %d", nCount); }
|
||||
}
|
||||
}
|
||||
|
||||
return hr;
|
||||
}
|
||||
|
||||
class CRemoveTargetCID
|
||||
{
|
||||
public:
|
||||
|
||||
CRemoveTargetCID(DWORD* dwCIDList, DWORD& dwMaxCIDNum,
|
||||
CRemoveOtherNation::CIDRaceMap& CIDRaceMap, DWORD dwMyRace)
|
||||
: m_dwCIDList(dwCIDList)
|
||||
, m_dwCIDNum(dwMaxCIDNum)
|
||||
, m_dwMaxCIDNum(dwMaxCIDNum)
|
||||
, m_CIDRaceMap(CIDRaceMap)
|
||||
, m_dwMyRace(dwMyRace)
|
||||
{
|
||||
m_dwCIDNum = 0;
|
||||
}
|
||||
|
||||
void operator () (CFriendList::Rebind& rebind)
|
||||
{
|
||||
DWORD dwCID = rebind.GetCID();
|
||||
|
||||
CRemoveOtherNation::CIDRaceMap::iterator pos = m_CIDRaceMap.find(dwCID);
|
||||
CRemoveOtherNation::CIDRaceMap::iterator end = m_CIDRaceMap.end();
|
||||
|
||||
if (pos != end && m_dwMyRace != pos->second)
|
||||
{
|
||||
if (m_dwCIDNum < m_dwMaxCIDNum)
|
||||
{
|
||||
m_dwCIDList[m_dwCIDNum] = dwCID;
|
||||
++m_dwCIDNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_CONVERT1("Cannot remove friend (CID:%10d) : buffer full", dwCID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void operator () (CBanList::Rebind& rebind)
|
||||
{
|
||||
DWORD dwCID = rebind.GetCID();
|
||||
|
||||
CRemoveOtherNation::CIDRaceMap::iterator pos = m_CIDRaceMap.find(dwCID);
|
||||
CRemoveOtherNation::CIDRaceMap::iterator end = m_CIDRaceMap.end();
|
||||
|
||||
if (pos != end && m_dwMyRace != pos->second)
|
||||
{
|
||||
if (m_dwCIDNum < m_dwMaxCIDNum)
|
||||
{
|
||||
m_dwCIDList[m_dwCIDNum] = dwCID;
|
||||
++m_dwCIDNum;
|
||||
}
|
||||
else
|
||||
{
|
||||
LOG_CONVERT1("Cannot remove ban (CID:%10d) : buffer full", dwCID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
DWORD* m_dwCIDList;
|
||||
DWORD& m_dwCIDNum;
|
||||
DWORD m_dwMaxCIDNum;
|
||||
DWORD m_dwMyRace;
|
||||
|
||||
CRemoveOtherNation::CIDRaceMap& m_CIDRaceMap;
|
||||
};
|
||||
|
||||
|
||||
ConvertResult CRemoveOtherNation::operator() (RylDBCommand::CFriendData& friendData)
|
||||
{
|
||||
DWORD dwCID = friendData.GetCID();
|
||||
|
||||
CIDRaceMap::iterator pos = m_CIDRaceMap.find(dwCID);
|
||||
CIDRaceMap::iterator end = m_CIDRaceMap.end();
|
||||
|
||||
if (pos == end)
|
||||
{
|
||||
LOG_CONVERT1("CID:%10u / Cannot find race", dwCID);
|
||||
}
|
||||
else
|
||||
{
|
||||
DWORD dwMyRace = pos->second;
|
||||
|
||||
CFriendList friendList(dwCID, 0);
|
||||
FRIEND myfriend = friendData.GetFriend();
|
||||
|
||||
if (!friendList.SerializeIn(myfriend.Data,
|
||||
myfriend.Info, myfriend.dwSize, myfriend.dwInfoSize))
|
||||
{
|
||||
LOG_CONVERT1("CID:%10u / SerializeIn friend failed", dwCID);
|
||||
}
|
||||
else
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> ģ<><C4A3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
DWORD dwMaxCID[CFriendList::MAX_FRIENDS_NUM];
|
||||
DWORD dwMaxCIDNum = CFriendList::MAX_FRIENDS_NUM;
|
||||
|
||||
friendList.Process(CRemoveTargetCID(dwMaxCID,
|
||||
dwMaxCIDNum, m_CIDRaceMap, dwMyRace));
|
||||
|
||||
for (DWORD dwIndex = 0; dwIndex < dwMaxCIDNum; ++dwIndex)
|
||||
{
|
||||
friendList.Remove(dwMaxCID[dwIndex]);
|
||||
}
|
||||
|
||||
myfriend.dwSize = _FRIEND::MAX_FRIEND_SIZE;
|
||||
myfriend.dwInfoSize = _FRIEND::MAX_FRIENDINFO_SIZE;
|
||||
|
||||
if (!friendList.SerializeOut(myfriend.Data,
|
||||
myfriend.Info, myfriend.dwSize, myfriend.dwInfoSize))
|
||||
{
|
||||
LOG_CONVERT1("CID:%10u / SerializeOut friend failed", dwCID);
|
||||
}
|
||||
else
|
||||
{
|
||||
friendData.SetFriend(myfriend);
|
||||
}
|
||||
}
|
||||
|
||||
CBanList banList(dwCID, 0);
|
||||
BAN myBan = friendData.GetBan();
|
||||
|
||||
if (!banList.SerializeIn(myBan.Data, myBan.Info, myBan.dwSize, myBan.dwInfoSize))
|
||||
{
|
||||
LOG_CONVERT1("CID:%10u / SerializeIn ban failed", dwCID);
|
||||
}
|
||||
else
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> <20>źθ<C5BA> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
DWORD dwMaxCID[CBanList::MAX_BAN_NUM];
|
||||
DWORD dwMaxCIDNum = CBanList::MAX_BAN_NUM;
|
||||
|
||||
banList.Process(CRemoveTargetCID(dwMaxCID,
|
||||
dwMaxCIDNum, m_CIDRaceMap, dwMyRace));
|
||||
|
||||
for (DWORD dwIndex = 0; dwIndex < dwMaxCIDNum; ++dwIndex)
|
||||
{
|
||||
banList.Remove(dwMaxCID[dwIndex]);
|
||||
}
|
||||
|
||||
myBan.dwSize = _BAN::MAX_BAN_SIZE;
|
||||
myBan.dwInfoSize = _BAN::MAX_BANINFO_SIZE;
|
||||
|
||||
if (!banList.SerializeOut(myBan.Data,
|
||||
myBan.Info, myBan.dwSize, myBan.dwInfoSize))
|
||||
{
|
||||
LOG_CONVERT1("CID:%10u / SerializeOut ban failed", dwCID);
|
||||
}
|
||||
else
|
||||
{
|
||||
friendData.SetBan(myBan);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return CONVERT_SUCCEEDED;
|
||||
}
|
||||
|
||||
159
Server/DBProcess/ConvertTwoNation/ConvertTwoNation.vcproj
Normal file
159
Server/DBProcess/ConvertTwoNation/ConvertTwoNation.vcproj
Normal file
@@ -0,0 +1,159 @@
|
||||
<?xml version="1.0" encoding="ks_c_5601-1987"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="ConvertTwoNation"
|
||||
ProjectGUID="{E7EBE269-D3B8-4813-96C1-9851B74E519A}"
|
||||
SccProjectName="SAK"
|
||||
SccAuxPath="SAK"
|
||||
SccLocalPath="SAK"
|
||||
SccProvider="SAK"
|
||||
Keyword="Win32Proj">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="../;../../RylServerProject;../../RylServerProject/BaseLibrary;../../RylServerProject/RylServerLibrary;../../RylServerProject/RylGameLibrary"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
MinimalRebuild="TRUE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="1"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="4"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ConvertTwoNation.exe"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile="$(OutDir)/ConvertTwoNation.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="../Executable/$(ConfigurationName)"
|
||||
IntermediateDirectory="../Intermediate/$(ProjectName)/$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="../;../../RylServerProject;../../RylServerProject/BaseLibrary;../../RylServerProject/RylServerLibrary;../../RylServerProject/RylGameLibrary"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="TRUE"
|
||||
DebugInformationFormat="3"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(OutDir)/ConvertTwoNation.exe"
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="<22>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
|
||||
<File
|
||||
RelativePath=".\ConvertTwoNation.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
|
||||
<File
|
||||
RelativePath=".\stdafx.h">
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="<22><><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD>"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
32
Server/DBProcess/ConvertTwoNation/ReadMe.txt
Normal file
32
Server/DBProcess/ConvertTwoNation/ReadMe.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
========================================================================
|
||||
<20>ܼ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> : ConvertTwoNation <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>
|
||||
========================================================================
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><> ConvertTwoNation <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD> ConvertTwoNation <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ԵǾ<D4B5> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
|
||||
ConvertTwoNation.vcproj
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>縦 <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> VC++ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>⺻ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
<20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Visual C++<2B><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD>
|
||||
<20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><>
|
||||
<20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>ɿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
|
||||
ConvertTwoNation.cpp
|
||||
<20>⺻ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
<EFBFBD><EFBFBD>Ÿ ǥ<><C7A5> <20><><EFBFBD><EFBFBD>:
|
||||
|
||||
StdAfx.h <20><> StdAfx.cpp<70><70>
|
||||
ConvertTwoNation.pch<63><68><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> PCH(<28≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD>) <20><><EFBFBD>ϰ<EFBFBD>
|
||||
StdAfx.obj<62><6A><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>˴ϴ<CBB4>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
<EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD>:
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1> <20><><EFBFBD><EFBFBD><EFBFBD>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> "TODO:" <20>ּ<EFBFBD><D6BC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <20>߰<EFBFBD><DFB0>ϰų<CFB0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <20>ϴ<EFBFBD>
|
||||
<EFBFBD>ҽ<EFBFBD> <20>ڵ<EFBFBD> <20>κ<EFBFBD><CEBA><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD>ϴ<EFBFBD>.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
8
Server/DBProcess/ConvertTwoNation/stdafx.cpp
Normal file
8
Server/DBProcess/ConvertTwoNation/stdafx.cpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// stdafx.cpp : ǥ<><C7A5> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
// ConvertTwoNation.pch<63><68> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˴ϴ<CBB4>.
|
||||
// stdafx.obj<62><6A><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ե˴ϴ<CBB4>.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
// TODO: <20>ʿ<EFBFBD><CABF><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴ<EFBFBD> STDAFX.H<><48><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
12
Server/DBProcess/ConvertTwoNation/stdafx.h
Normal file
12
Server/DBProcess/ConvertTwoNation/stdafx.h
Normal file
@@ -0,0 +1,12 @@
|
||||
// stdafx.h : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ<EFBFBD>
|
||||
// ǥ<><C7A5> <20>ý<EFBFBD><C3BD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
#include <iostream>
|
||||
#include <tchar.h>
|
||||
|
||||
// TODO: <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD> <20>߰<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E2BFA1> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
Reference in New Issue
Block a user