我的应用程序使用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)?
发布于 2010-10-25 02:27:09
同时加载MSVCRT.LIB和MSVCRTD.DLL有什么问题?这只是在你的Debug版本中,我可能会这样想,正如你在问题中所提到的。
我不认为你真的想开始摆弄Debug OS DLLs -那就是DBGHELP.DLL --这并不比你的应用加载Debug Kernel32.dll更可取。
https://stackoverflow.com/questions/4008756
复制相似问题