2010-04-28 65 views
1

我正在嘗試使用dbghelp.dll。如果我在VS2008屬性中將其設置爲指向正確的庫和頭文件,並將dbghelp.dll放在與可執行文件相同的目錄中,則dll中的某個函數將失敗。如果我LoadLibrary的DLL,所有功能的作品。我查看了通過VS選項包含的頭文件,並且正確的文件正在被拉入。正確的文件夾正在被拉入(通過/ verbose選項進行檢查),並且depends.exe顯示正確的DLL被加載。有誰知道爲什麼我不能得到這個工作?我可能只會去LoadLibrary,但我真的很難在這個。只能通過LoadLibrary正確加載Dll嗎?

編輯:SymfromAddr失敗,出現「錯誤87」,無論如何。如果我通過LoadLibrary加載DLL,它可以工作。

+1

請澄清當「dll中的一個函數失敗」時會發生什麼。 – 2010-04-28 16:32:08

+0

查看系統下的事件查看器,它通常有關於該問題的更多信息(缺少清單等)。 – 2010-04-28 16:49:07

+1

您是否在兩種情況下使用相同的DBGHELP.DLL版本?使用Process Explorer(www.sysinternals.com)可以在兩種情況下查看從哪個文件夾加載DBGHELP.DLL。如果是這種情況,請檢查清單文件(MYEXE.EXE.MANIFEST或資源文件中的Manifest)是否引用DBGHELP.DLL,使其從Windows並行緩存(WinSxS)加載。 – Patrick 2010-05-19 21:01:31

回答

0

您是否通過proj設置或#pragma評論(lib,「Dbghelp.lib」)鏈接到Dbghelp.lib? 如果你這樣做的話,應用程序初始化時會加載dll。

相關問題