更新的平台支持

DbgHelp 库已扩大,以在必要时支持 32 位和 64 位 Windows。 原始函数和结构定义仍在 DbgHelp.h 中,但也存在与 64 位 Windows 兼容的更新版本的这些定义。 如果在代码中使用更新的函数,则可以针对 32 位和 64 位 Windows 对其进行编译。 你的代码也将更高效,因为原始函数只调用更新的函数来执行工作。

例如,DbgHelp.h 包含 SymUnloadModule(原始函数)和 SymUnloadModule64(更新的函数)的定义。 这些定义几乎完全相同,但对 BaseOfDll 参数使用不同的类型。 (SymUnloadModule 使用 DWORD 类型,而 SymUnloadModule64 使用 DWORD64 类型。)如果编写代码以使用 SymUnloadModule64,则可以针对 32 位和 64 位 Windows 对其进行编译。 与调用 SymUnloadModule 相比,该代码的效率也更高。

以下是更新的函数的列表:

EnumerateLoadedModules64
StackWalk64
SymEnumerateModules64
SymEnumerateSymbols64
SymFunctionTableAccess64
SymGetLineFromAddr64
SymGetLineFromName64
SymGetLineNext64
SymGetLinePrev64
SymGetModuleBase64
SymGetModuleInfo64
SymGetSymFromAddr64
SymGetSymFromName64
SymGetSymNext64
SymGetSymPrev64
SymLoadModule64
SymRegisterCallback64
SymRegisterFunctionEntryCallback64
SymUnDName64
SymUnloadModule64

以下是更新的结构的列表:

ADDRESS64
IMAGEHLP_DEFERRED_SYMBOL_LOAD64
IMAGEHLP_DUPLICATE_SYMBOL64
IMAGEHLP_LINE64
IMAGEHLP_MODULE64
IMAGEHLP_SYMBOL64
KDHELP64
STACKFRAME64