在项目的属性页,“配置属性”/“链接器”/“系统”中“子系统”选择“Windows(/SUBSYSTEM:WINDOWS)原先为“控制台(/SUBSYSTEM:CONSOLE)”
在“高级”选项中添加“入口点”,手工编辑输入mainCRTStartup。。
//添加DUMP文件生成
#ifdef WIN32
#include "DbgHelp.h"
#include <windows.h>
#pragma comment( lib, "dbghelp")
#endif // WIN32
long __stdcall callback_func(_EXCEPTION_POINTERS* excp)
{
HANDLE hFile = ::CreateFile( _T(".\\Rstp_Server_Dumpfile.dmp"), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if( hFile != INVALID_HANDLE_VALUE)
{
MINIDUMP_EXCEPTION_INFORMATION einfo;
einfo.ThreadId = ::GetCurrentThreadId();
einfo.ExceptionPointers = excp;
einfo.ClientPointers = FALSE;
::MiniDumpWriteDump(::GetCurrentProcess(), ::GetCurrentProcessId(), hFile, MiniDumpNormal, &einfo, NULL, NULL);
::CloseHandle(hFile);
}
return EXCEPTION_EXECUTE_HANDLER;
}
int main(int argc, char** argv) {
#ifdef WIN32
//添加DUMP,程序崩溃时调试用
SetUnhandledExceptionFilter(callback_func);
#endif // WIN32