h5网站制作,网页设计实验报告总结,公司域名注册步骤,如何规划网站栏目dbghelp.dll windows的系统目录system32下#xff0c;都有dbghelp.dll#xff0c;但在实际使用时#xff0c;往往会让exe加载自己目录下的dll#xff0c;以避免系统目录下的dll版本不一导致的程序异常。 故一般都是用LoadLibrary()的方式加载Dll#xff0c;先加载当前目录…dbghelp.dll windows的系统目录system32下都有dbghelp.dll但在实际使用时往往会让exe加载自己目录下的dll以避免系统目录下的dll版本不一导致的程序异常。 故一般都是用LoadLibrary()的方式加载Dll先加载当前目录不存在时加载系统目录。 HMODULE hDll ::LoadLibrary(szDllPath); MiniDumpWriteDump 该函数为DbgHelp.dll 导出函数使用它生成dump文件。 BOOL WINAPI MiniDumpWriteDump(__in HANDLE hProcess,__in DWORD ProcessId,__in HANDLE hFile,__in MINIDUMP_TYPE DumpType,__in PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,__in PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,__in PMINIDUMP_CALLBACK_INFORMATION CallbackParam
); 通过 GetProcAddress() 获取 MiniDumpWriteDump() 函数指针如下 typedef BOOL (WINAPI* MINIDUMPWRITEDUMP)(HANDLE hProcess,DWORD ProcessId,HANDLE hFile,MINIDUMP_TYPE DumpType,PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,PMINIDUMP_CALLBACK_INFORMATION CallbackParam
);MINIDUMPWRITEDUMP pFuncWriteDump NULL;
pFuncWriteDump (MINIDUMPWRITEDUMP)::GetProcAddress(hDll, MiniDumpWriteDump); 创建dump文件File HANDLE hDump CreateFile(szFileName, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); 生成dump文件 MINIDUMP_EXCEPTION_INFORMATION loExceptionInfo;loExceptionInfo.ExceptionPointers ExceptionInfo;loExceptionInfo.ThreadId GetCurrentThreadId();loExceptionInfo.ClientPointers TRUE;BOOL bRes MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(),lhDumpFile, MiniDumpNormal, loExceptionInfo, NULL, NULL);CloseHandle(lhDumpFile); ExceptionInfo 是程序的异常信息UnhandledExceptionFilter() 函数的唯一参数类型所以可以在 UnhandledExceptionFilter() 函数内生成Dump文件。 记得最后CloseHandle 文件句柄。 转载于:https://www.cnblogs.com/johnice/archive/2013/01/06/2847654.html