Пример #1
0
static DWORD StartSevenGameService(LPDWORD param)
{
	SFBreakPad exceptionHandler;
	exceptionHandler.Install();

	TCHAR szFilePath[MAX_PATH] = { 0, };
	GetModuleFileName(NULL, szFilePath, MAX_PATH);
	TCHAR* szPath = SFUtil::ExtractPathInfo(szFilePath, SFUtil::PATH_DIR);
	SetCurrentDirectory(szPath);

	SFLogicEntry* pLogicEntry = new SFLogicEntry();
	pLogicEntry->AddGameMode(GAMEMODE_TRAINING, new SGTraining(GAMEMODE_TRAINING));
	pLogicEntry->AddGameMode(GAMEMODE_BATTLE, new SGBattle(GAMEMODE_BATTLE));

	/////////////////////////////////////////////////////////////////////
	SFEngine::GetInstance()->Intialize(pLogicEntry, new SFPacketProtocol<SevenGameProtocol>);
	SFEngine::GetInstance()->AddTimer(0, 500, 1000);
	SFEngine::GetInstance()->Start();

	google::FlushLogFiles(google::GLOG_INFO);

#ifdef _DEBUG
	getchar();
#else
	WaitForSingleObject(SFServiceController::killServiceEvent, INFINITE);
#endif

	SFEngine::GetInstance()->ShutDown();

	return 0;
}
Пример #2
0
int _tmain(int argc, _TCHAR* argv[])
{
//예외 핸들러 등록
	SFBreakPad exceptionHandler;
	exceptionHandler.Install();

//파라메터가 존재할 경우 서비스 등록 및 삭제 루틴을 실행한다.	
	if (argc == 2)
	{
		ControlService(argc, argv);
		return 0;
	}

#ifdef _DEBUG
	ServiceWorkerThread(NULL);
#else
	//서비스 메인 등록
	SERVICE_TABLE_ENTRY ServiceTable[] =
	{
		{ argv[0], (LPSERVICE_MAIN_FUNCTION)ServiceMain },
		{ NULL, NULL }
	};

	if (StartServiceCtrlDispatcher(ServiceTable) == FALSE)
	{
		return 0;
	}
#endif

	return 0;
}
Пример #3
0
int _tmain(int argc, _TCHAR* argv[])
{
    SFBreakPad exceptionHandler;
    exceptionHandler.Install();

    EchoLogicEntry* pLogicEntry = new EchoLogicEntry();

    auto errorCode = SFEngine::GetInstance()->Intialize(pLogicEntry);
    if (errorCode != NET_ERROR_CODE::SUCCESS)
    {
        return 0;
    }

    SFEngine::GetInstance()->AddPacketProtocol(0, new SFPacketProtocol<SFEchoProtocol>);
    SFEngine::GetInstance()->Start(0);

    getchar();

    SFEngine::GetInstance()->ShutDown();

    return 0;
}