2009-10-25 14 views
10

Używam Jochen Kalmbach's StackWalker class from CodeProject, aby utworzyć ślad stosu, gdy wystąpi wyjątek w mojej bibliotece DLL.Czy program DbgHelp.dll jest wbudowany w system Windows? Czy mogę na nim polegać?

Opiera się on DbgHelp.dll

Czy DbgHelp.dll wbudowany w Windows Vista, Windows 7 WS2008?

Wiem o od firmy Microsoft i jestem świadomy, że plik DbgHelp.dll jest dostarczany w tym pakiecie. Ale znalazłem również DbgHelp.dll w% windir% \ system32 na moim komputerze.


Jeśli nie jest zainstalowany domyślnie, czy istnieje sposób na redystrybucję go za pomocą debugujących kompilacji mojej biblioteki DLL?

Odpowiedz

10

Microsoft says:

"Biblioteka DbgHelp jest realizowany przez DbgHelp.dll Ten DLL jest zawarty w systemie operacyjnym."

Należy pamiętać, że wersja aktualnie dołączona do narzędzi do debugowania dla systemu Windows może nie być taka sama, jak wersja dołączona do systemu operacyjnego.

+0

To częściowo prawda, z tego, co udało mi się powiedzieć, nie jest dołączona do NT 4/Windows 2000, ale od XP/Server 2003 nie miałem problemu z brakującymi plikami DLL, ale warto o tym pamiętać. Jeśli go brakuje, zawsze możesz pobrać i zainstalować narzędzia do debugowania na tym komputerze i będzie działać. To właśnie musiałem zrobić w przeszłości z Windows 2000, aby debugować mniejsze problemy. –

2

Zazwyczaj najlepiej jest wysłać plik dbghelp.dll do aplikacji, aby upewnić się, że uzyskasz wersję, której się spodziewasz. Uważam, że z tego właśnie powodu można go redystrybuować.

Warto jednak pamiętać, że biblioteka uruchomieniowa debugowania nie podlega redystrybucji. Twoje kompilacje debugowania muszą być nadal (w znaczeniu VC++) wersjami "wydania".

+0

Nadal zależy to od msvcrt.dll (bez wskazania wersji w nazwie pliku), więc nie jest tak rozprowadzany jak w "standalone". – Janosch

+0

Należy pamiętać, że zgodnie z http://go.microsoft.com/fwlink/?LinkId=294840 nie można wysyłać samych bibliotek 'dbghelp' & co DLL, ale raczej' .msi', "niezmodyfikowanych, jako pakiet", który zawiera wymienione biblioteki DLL: 'Program Files \ Windows Kits \ 8.1 \ Debuggers \ Redist \ X86 Debuggers and Tools-x86_en-us.msi Program Files \ Windows Kits \ 8.1 \ Debuggers \ Redist \ X64 Debugers i Narzędzia-x64_pl-us. msi'. – vladr

Powiązane problemy