Files
wnmj/Servers/服务器组件/游戏服务器/GameServer.cpp

93 lines
2.2 KiB
C++
Raw Normal View History

2026-02-13 14:34:15 +08:00
#include "Stdafx.h"
#include "GameServer.h"
#include "GameServerDlg.h"
#include <imagehlp.h>
#pragma comment(lib, "dbghelp.lib")
//////////////////////////////////////////////////////////////////////////////////
// <20><><EFBFBD><EFBFBD>Dump<6D>ļ<EFBFBD>
//
void CreateDumpFile(LPCSTR lpstrDumpFilePathName, EXCEPTION_POINTERS *pException)
{
// <20><><EFBFBD><EFBFBD>Dump<6D>ļ<EFBFBD>;
//
HANDLE hDumpFile = CreateFile(lpstrDumpFilePathName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
// Dump<6D><70>Ϣ;
//
MINIDUMP_EXCEPTION_INFORMATION dumpInfo;
dumpInfo.ExceptionPointers = pException;
dumpInfo.ThreadId = GetCurrentThreadId();
dumpInfo.ClientPointers = TRUE;
// д<><D0B4>Dump<6D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>;
//
MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile, MiniDumpNormal, &dumpInfo, NULL, NULL);
CloseHandle(hDumpFile);
}
// <20><><EFBFBD><EFBFBD>Unhandled Exception<6F>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>;
//
LONG ApplicationCrashHandler(EXCEPTION_POINTERS *pException)
{
char szModulePath[MAX_PATH] = {0};
::GetModuleFileName(NULL, szModulePath, MAX_PATH);
SYSTEMTIME st;
::GetLocalTime(&st);
char szFilePath[1024] = {0};
sprintf_s(szFilePath, 1024, "%s%02d%02d%02d%02d%02d.dmp", szModulePath, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
CreateDumpFile(szFilePath, pException);
return EXCEPTION_EXECUTE_HANDLER;
}
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CGameServerApp theApp;
//////////////////////////////////////////////////////////////////////////////////
BEGIN_MESSAGE_MAP(CGameServerApp, CWinApp)
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////////
//<2F><><EFBFBD><EFBFBD><ECBAAF>
CGameServerApp::CGameServerApp()
{
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BOOL CGameServerApp::InitInstance()
{
// <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>Unhandled Exception<6F>Ļص<C4BB><D8B5><EFBFBD><EFBFBD><EFBFBD>
//
SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)ApplicationCrashHandler);
__super::InitInstance();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AfxInitRichEdit2();
InitCommonControls();
AfxEnableControlContainer();
//<2F><><EFBFBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>
SetRegistryKey(szProduct);
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
CGameServerDlg GameServerDlg;
m_pMainWnd=&GameServerDlg;
GameServerDlg.DoModal();
return FALSE;
}
//////////////////////////////////////////////////////////////////////////////////