我的应用程序使用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)?
答案 0 :(得分:0)
加载MSVCRT.LIB和MSVCRTD.DLL有什么问题?无论如何,这只是在你的Debug构建中,我想,正如你在问题中似乎注意到的那样。
我认为你真的不想开始搞乱调试操作系统DLL - 这就是DBGHELP.DLL - 例如,这不比让你的应用程序加载Debug Kernel32.dll更令人满意。