我的应用程序依赖于 DBGHELP.DLL 函数,尤其是有关目标进程加载的 DLL 的信息。但是,很多时候它在低于 Vista 的 Windows 版本上失败(你知道 XP 仍然存在!)。环顾四周,发现目标系统上安装/存在的 DBGHELP.DLL 是旧的,并且不支持许多新功能(例如,旧版本不支持MiniDumpWriteDump的几个标志)。
该页面提到了 DbgHelp 版本,并模糊地提到了分发 DBGHELP.DLL(和其他 DLL)。不得提供随 OS 一起提供的 DLL(同意,并且没有任何问题)。然后它说应该提供“Windows 调试工具”中的最新 DLL。
我的问题是:哪个版本可以/应该随应用程序一起提供?选择最新的并假设它可以在最低操作系统(XP)中工作?当然,我不会发布这个 DLL 的调试版本。“ DbgHelp 版本”页面没有提到对特定操作系统的支持性——所以我们可以假设 XP 支持最新版本。
我会将 DLL 放在应用程序目录本身中,并且可以有条件地调用诸如SetDllDirectory之类的函数。如果需要,可以动态加载 DLL 本身和/或 DBGHELP.DLL 的任何函数。
有关的: