143 lines
No EOL
6.6 KiB
C++
143 lines
No EOL
6.6 KiB
C++
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
|
||
// ServiceManagerEx.pch는 미리 컴파일된 헤더가 됩니다.
|
||
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
|
||
|
||
#include "stdafx.h"
|
||
|
||
struct tm _wtotm(const WCHAR * pTimeFromSql)
|
||
{
|
||
int nCnt = 0, nTmCnt = 0;
|
||
struct tm Tm;
|
||
memset(&Tm, 0, sizeof(struct tm));
|
||
|
||
WCHAR wszTemp[TIMELENMAX];
|
||
memset(wszTemp, 0, sizeof(wszTemp));
|
||
|
||
for (int i = 0; i < TIMELENMAX; i++)
|
||
{
|
||
if (pTimeFromSql[i] == NULL || pTimeFromSql[i] == '\0')
|
||
{
|
||
if (nTmCnt == 4)
|
||
{
|
||
Tm.tm_min = _wtoi(wszTemp);
|
||
return Tm;
|
||
}
|
||
break;
|
||
}
|
||
if (pTimeFromSql[i] == '.') break;
|
||
if (pTimeFromSql[i] != '-' && pTimeFromSql[i] != ':' && pTimeFromSql[i] != ' ')
|
||
{
|
||
wszTemp[nCnt] = pTimeFromSql[i];
|
||
nCnt++;
|
||
}
|
||
else
|
||
{
|
||
if (nTmCnt == 0)
|
||
Tm.tm_year = _wtoi(wszTemp) - 1900; //struct tm year since 1900
|
||
else if (nTmCnt == 1)
|
||
Tm.tm_mon = _wtoi(wszTemp) - 1;
|
||
else if (nTmCnt == 2)
|
||
Tm.tm_mday = _wtoi(wszTemp);
|
||
else if (nTmCnt == 3)
|
||
Tm.tm_hour = _wtoi(wszTemp);
|
||
else if (nTmCnt == 4)
|
||
{
|
||
Tm.tm_min = _wtoi(wszTemp);
|
||
return Tm;
|
||
}
|
||
|
||
memset(wszTemp, 0, sizeof(wszTemp));
|
||
nTmCnt++;
|
||
nCnt = 0;
|
||
}
|
||
}
|
||
return Tm;
|
||
}
|
||
|
||
int GetServerType(const WCHAR * pType)
|
||
{
|
||
if (!wcsicmp(pType, L"db"))
|
||
return MANAGED_TYPE_DB;
|
||
else if (!wcsicmp(pType, L"log"))
|
||
return MANAGED_TYPE_LOG;
|
||
else if (!wcsicmp(pType, L"login"))
|
||
return MANAGED_TYPE_LOGIN;
|
||
else if (!wcsicmp(pType, L"master"))
|
||
return MANAGED_TYPE_MASTER;
|
||
else if (!wcsicmp(pType, L"village"))
|
||
return MANAGED_TYPE_VILLAGE;
|
||
else if (!wcsicmp(pType, L"game"))
|
||
return MANAGED_TYPE_GAME;
|
||
else if (!wcsicmp(pType, L"cash"))
|
||
return MANAGED_TYPE_CASH;
|
||
return 0;
|
||
}
|
||
|
||
int GetMonitorLevel(const WCHAR * pLevel)
|
||
{
|
||
if (!wcsicmp(L"MONITOR", pLevel))
|
||
return SERVERMONITOR_LEVEL_MONITOR;
|
||
else if (!wcsicmp(L"ADMIN", pLevel))
|
||
return SERVERMONITOR_LEVEL_ADMIN;
|
||
else if (!wcsicmp(L"SUPERADMIN", pLevel))
|
||
return SERVERMONITOR_LEVEL_SUPERADMIN;
|
||
else
|
||
_ASSERT_EXPR(0, L"CheckMonitor User Level");
|
||
return SERVERMONITOR_LEVEL_NONE;
|
||
}
|
||
|
||
int GetSIDType(const WCHAR * pwszType)
|
||
{
|
||
if (!_wcsicmp(L"Log", pwszType))
|
||
return SID_CONNECTION_TYPE_LOG;
|
||
else if (!_wcsicmp(L"DBWare", pwszType))
|
||
return SID_CONNECTION_TYPE_DB;
|
||
_ASSERT(0);
|
||
return 0;
|
||
}
|
||
|
||
int GetServerTypeForConvert(const WCHAR * pType)
|
||
{
|
||
if (!wcsicmp(pType, L"db") || !wcsicmp(pType, L"dbware"))
|
||
return MANAGED_TYPE_DB;
|
||
else if (!wcsicmp(pType, L"log"))
|
||
return MANAGED_TYPE_LOG;
|
||
else if (!wcsicmp(pType, L"login"))
|
||
return MANAGED_TYPE_LOGIN;
|
||
else if (!wcsicmp(pType, L"master"))
|
||
return MANAGED_TYPE_MASTER;
|
||
else if (!wcsicmp(pType, L"village"))
|
||
return MANAGED_TYPE_VILLAGE;
|
||
else if (!wcsicmp(pType, L"game"))
|
||
return MANAGED_TYPE_GAME;
|
||
else if (!wcsicmp(pType, L"cash"))
|
||
return MANAGED_TYPE_CASH;
|
||
return 0;
|
||
}
|
||
|
||
time_t _wtoTime_t(const WCHAR * pTimeFromSql)
|
||
{
|
||
return mktime(&_wtotm(pTimeFromSql));
|
||
}
|
||
|
||
void ErrorMessage(const wchar_t* fmt, ...)
|
||
{
|
||
va_list arg;
|
||
va_start(arg, fmt);
|
||
|
||
wchar_t msg[8192];
|
||
_vsntprintf(msg, _countof(msg), fmt, arg);
|
||
|
||
::AfxMessageBox(msg, MB_ICONERROR);
|
||
}
|
||
|
||
void FormatMessage(UINT type, const wchar_t* fmt, ...)
|
||
{
|
||
va_list arg;
|
||
va_start(arg, fmt);
|
||
|
||
wchar_t msg[8192];
|
||
_vsntprintf(msg, _countof(msg), fmt, arg);
|
||
|
||
::AfxMessageBox(msg, type);
|
||
} |