c++ - DBGHelp.dll 导致在调试版本中加载 msvcrt.dll

标签 c++ linker msvcrt dbghelp

我的应用程序使用 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)?

最佳答案

同时加载 MSVCRT.LIB 和 MSVCRTD.DLL 有什么问题?无论如何,这仅在您的调试版本中,我想,正如您在问题中似乎注意到的那样。

我不认为您真的想开始摆弄 Debug OS DLL - 这就是 DBGHELP.DLL - 例如,这并不比让您的应用程序加载 Debug Kernel32.dll 更可取。

关于c++ - DBGHelp.dll 导致在调试版本中加载 msvcrt.dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4008756/

相关文章:

c++ - MinGW 是如何实现 C++ 库支持的?

C++ 转换字节

c++ - 提升池分配器比新的慢

c++ - 如何使用CMake链接 "numpy/arrayobject.h"

linux - 链接错误: undefined reference to static libarary

c++ - 无法从 MSVCRT strtod/sscanf/atof 函数中获取 NaN

visual-studio - 正在解析LNK4098 : defaultlib 'MSVCRT' conflicts with

c++ - 如何将可变参数模板参数的特征值减少为一个值?

c++ std::move 在这里不好吗?

c++ - 为什么 RWDBManager::database 需要共享库名?