93 lines
2.2 KiB
C++
93 lines
2.2 KiB
C++
|
|
#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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//////////////////////////////////////////////////////////////////////////////////
|