2009-10-25 2 views
10

Jochen Kalmbach's StackWalker class from CodeProjectを使用して、私のDLLで例外が発生したときにスタックトレースを生成します。DbgHelp.dllはWindowsに組み込まれていますか?それに頼ることはできますか?

それは DbgHelp.dll

に依存している

DbgHelp.dllがビルトインされているWindows Vistaでは、WS2008、Windows 7のか?

私はマイクロソフトから約The Debugging Tools for Windowsを知らせています。そのパッケージにはDbgHelp.dllが同梱されています。しかし私はまた、私のマシン上の%windir%\ system32にDbgHelp.dllが見つかりました。


デフォルトではインストールされていない場合、DLLのデバッグビルドで再配布する方法はありますか?

答えて

10

Microsoft says

"DbgHelpライブラリーは、DbgHelp.dllによって実装されている。このDLLは、オペレーティングシステムに含まれています。。"

現在、Windows用デバッグツールに同梱されているバージョンは、オペレーティングシステムに含まれているバージョンと異なる場合があります。

+0

NT 4/Windows 2000にはバンドルされていませんが、XP/Server 2003以来、私には欠けているDLLに問題はありませんでしたが、覚えておく価値があります。見つからない場合は、いつでもそのマシンにデバッグツールをダウンロードしてインストールすることができます。これは、私が過去にWindows 2000で小さな問題をデバッグするためにしなければならなかったことです。 –

2

あなたが期待しているバージョンを確実に入手できるようにするには、dbghelp.dllをアプリケーションと一緒に出荷するのが一般的に最善です。私はこれがまさにこの理由のために再配布可能だと信じています。

ただし、デバッグランタイムライブラリは再配布可能ではないことに注意してください。あなたのデバッグビルドはまだ(VC++の言い方では) "リリース"ビルドでなければなりません。

+0

それでもmsvcrt.dllに依存します(ファイル名のバージョンは表示されません)。したがって、 "スタンドアロン"のように配布可能ではありません。 – Janosch

+0

http://go.microsoft.com/fwlink/?LinkId=294840に従うと、 'dbghelp'&co DLL自体を出荷することはできませんが、' .msi'、 "unmodified、as a package"プログラムファイル\ Windowsキット\ 8.1 \ Debuggers \ Redist \ X86デバッガとツール-X86_en-us.msi プログラムファイル\ Windowsキット\ 8.1 \ Debuggers \ Redist \ X64デバッガとツール-x64_en-us。 msi。 – vladr

関連する問題