代码之家  ›  专栏  ›  技术社区  ›  itaj

dbghelp.dll导致在调试版本中加载msvcrt.dll

  •  1
  • itaj  · 技术社区  · 16 年前

    我的应用程序使用VC6 SP6编译,使用dbghelp.lib获取堆栈信息。在调试和发布编译中,代码是similar。 问题是,在执行调试版本时,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)?

    1 回复  |  直到 16 年前
        1
  •  0
  •   Steve Townsend    16 年前

    加载msvcrt.lib和msvcrtd.dll有什么问题?我想,这只是在您的调试版本中,正如您在问题中注意到的那样。

    我不认为你真的想开始纠结于调试OS DLL——这就是dbghelp.dll的意思——比如说,让你的应用加载一个debug kernel32.dll是不可取的。