My application compiles with VC6 sp6, uses DBGHelp.lib to get stack information. The code is simmilar in debug and release compilations. The problem is that when executing the debug version, DBGHelp.dll loads msvcrt.dll (the release version). msvcrtd.dll is already loaded by my debug link anyway. So I end up having both msvcrtd.dll and msvcrt.dll in the process in debug version. The dsp is set to load default libraries, and msvcrt(d).lib are not mentioned directly at all. If I take out the code that uses DBGHelp.dll and remove DBGHelp.lib from the dsp link list, msvcrt.dll is not loaded.
How do I fix this?
I need to have only msvcrtd.dll in my debug execution.
Is there a special version of DBGHelp.dll for debug (th开发者_JAVA百科at would use msvcrtd.dll)?
What is the problem with having both MSVCRT.LIB and MSVCRTD.DLL loaded? This is only in your Debug build anyway, I would have thought, as you seem to note in the question.
I don't think you really want to start messing around with Debug OS DLLs - that's what DBGHELP.DLL is - this is no more desirable than having your app load up a Debug Kernel32.dll, for example.
精彩评论