1

私のアプリケーションはVC6sp6でコンパイルされ、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を使用する)はありますか?

4

1 に答える 1

0

MSVCRT.LIBとMSVCRTD.DLLの両方をロードすることの問題は何ですか?とにかく、これはあなたのデバッグビルドにのみあります、あなたが質問で注意しているように、私は思ったでしょう。

Debug OS DLLをいじり始めたいとは思わない-それがDBGHELP.DLLです-これは、たとえば、アプリにDebugKernel32.dllをロードさせるよりも望ましいことではありません。

于 2010-10-24T18:27:08.663 に答える