在 Visual Studio 2010 中調試呼叫某個 API 時,返回的句柄始終為 NULL,GetLastError() 返回錯誤碼 126(ERROR_MOD_NOT_FOUND),表示 LoadLibrary 載入動態連結庫失敗。重新配置專案後,輸出視窗顯示大量系統 DLL 的 PDB 符號檔案找不到訊息:
Loaded 'C:\Windows\System32\ntdll.dll', Cannot find or open the PDB file Loaded 'C:\Windows\System32\kernel32.dll', Cannot find or open the PDB file Loaded 'C:\Windows\System32\KernelBase.dll', Cannot find or open the PDB file ...
這看起來很嚴重,實際上只是缺少系統 DLL 的偵錯符號,不影響程式邏輯執行。
程式的輸出路徑被設定到了系統目錄(如 C:\Windows\System32),而非專案的建置輸出目錄。這導致偵錯器嘗試載入系統 DLL 的符號檔,但找不到對應的 .pdb 檔案。
.exe 檔案。Debug 或 Release 目錄,而非系統目錄。「Cannot find or open the PDB file」僅表示偵錯符號缺失,不會導致 LoadLibrary 失敗。真正的錯誤 126 通常是因為:
建議使用 Dependency Walker 或 Process Monitor 進一步診斷 DLL 載入失敗的具體原因。