1

我的应用程序使用 VC6 sp6 编译,使用 DBGHelp.lib 获取堆栈信息。该代码在调试和发布编译中是相似的。问题是在执行调试版本时,DBGHelp.dll 会加载 msvcrt.dll(发布版本)。无论如何,我的调试链接已经加载了 msvcrtd.dll。所以我最终在调试版本的过程中同时拥有 msvcrtd.dll 和 msvcrt.dll。dsp设置为加载默认库,根本没有直接提到msvcrt(d).lib。如果我取出使用 DBGHelp.dll 的代码并从 dsp 链接列表中删除 DBGHelp.lib,则不会加载 msvcrt.dll。

我该如何解决?

我只需要在我的调试执行中使用 msvcrtd.dll。

是否有用于调试的特殊版本的 DBGHelp.dll(将使用 msvcrtd.dll)?

4

1 回答 1

0

同时加载 MSVCRT.LIB 和 MSVCRTD.DLL 有什么问题?无论如何,这仅在您的 Debug 版本中,我想,正如您在问题中所指出的那样。

我不认为你真的想开始搞乱调试操作系统 DLL——这就是 DBGHELP.DLL ——这比让你的应用程序加载一个 Debug Kernel32.dll 更可取,例如。

于 2010-10-24T18:27:08.663 回答