int ACE_TMAIN(int argc, ACE_TCHAR* argv[]) { //指定当前目录,防止访问文件失败 TCHAR szFileName[MAX_PATH] = {0}; GetModuleFileName(0, szFileName, MAX_PATH); LPTSTR pszEnd = _tcsrchr(szFileName, TEXT('\\')); if (pszEnd != 0) { pszEnd++; *pszEnd = 0; } SetCurrentDirectory(szFileName); //添加Dump文件 SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler); //第一步,读取配置文件 if(!App_MainConfig::instance()->Init()) { OUR_DEBUG((LM_INFO, "[main]%s\n", App_MainConfig::instance()->GetError())); } else { App_MainConfig::instance()->Display(); } //隐式加载PacketParse bool blState = App_PacketParseLoader::instance()->LoadPacketInfo(App_MainConfig::instance()->GetPacketParseInfo()->m_szPacketParseName); if(true == blState) { //判断是否是需要以服务的状态启动 if(App_MainConfig::instance()->GetServerType() == 1) { //以服务状态启动 //首先看有没有配置启动windows服务 App_Process::instance()->run(argc, argv); } else { //正常启动 ServerMain(); } } return 0; }
DWORD WINAPI ChatFunc(LPVOID randparam) { ServerMain(randparam); return 0; }