一、 編輯器設定檢查 (基礎啟用)
- 選單 **Tools → Options...** (工具 → 選項)。
- 切換 **Editor** 標籤 (編輯器)。
- 確認 **Statement completion** 區塊:
☑ Auto list members** (自動列出成員)
☑ Auto quick info** (自動快速資訊)
☑ Auto parameter info** (自動參數資訊)
☑ Auto complete** (自動完成)
- 確定 → 重啟 VC6 測試。
二、 核心修復:刪除 .ncb 符號資料庫 (90% 有效)
現象:輸入物件名稱按 . 或 -> 無成員列表、參數提示消失、去到定義失效。
原因:.ncb (IntelliSense 資料庫) 損壞、過舊、或專案結構變更未同步。VC6 的 .ncb 更新機制極易卡死。
標準流程:
- 關閉 Visual Studio 6.0** (必須,檔案被獨佔鎖定)。
- 在專案目錄找到
ProjectName.ncb,**刪除** (或改名備份)。
- 重新開啟專案 (.dsw/.sln)**。
- VC6 會在背景自動掃描所有
.h/.cpp 重建 .ncb,**進度條顯示於狀態列**。
- 重建完成後,自動提示恢復正常。
三、 進階排查 (若刪 .ncb 無效)
- 專案包含路徑錯誤:Project → Settings → C/C++ → Preprocessor → Additional include directories,確認路徑存在且無誤。
- 巨集定義干擾:大量條件編譯 (
#ifdef) 導致解析器困惷。嘗試在 Settings → C/C++ → Preprocessor → Preprocessor definitions 加入關鍵巨集定義強制展開。
- 原始碼語法錯誤:編譯錯誤的代碼 IntelliSense 可能拒絕解析。先修復編譯錯誤再重建 .ncb。
- 工作區 .opt/.plg 損壞:同步刪除
.opt (工作區選項)、.plg (建置日誌) 重開。
- 記憶體不足:超大專案 .ncb 超過 VC6 32 位進程 2GB 限制。拆分專案、或升級 VS2008+ (64 位進程支援)。
四、 預防性維護習慣
- 重大重構 (大量新增/刪除/重命名類別/函式) 後,**主動刪 .ncb 重建**。
- 版控忽略
.ncb、.opt、.plg、.aps、.clw。**不提交二進制快取**。
- 定期清理專案目錄臨時檔 (
*.ncb, *.opt, *.plg, Debug/, Release/)。
五、 現代 VS 對比
| 特性 | VC6.0 (.ncb) | VS2010+ (.sdf + .vs/) |
| 格式 | 專有二進制 | SQL Server Compact (.sdf) + JSON |
| 架構 | 單一檔案,易鎖定/損壞 | 資料庫 + 分散式快取,健壯 |
| 重建觸發 | 手動刪檔 | 自動增量更新,極少需手動 |
| 大專案支援 | 差 (2GB 限制) | 優 (64 位進程) |
總結
VC6.0 IntelliSense 失效 **首刪 .ncb**,輔以編輯器選項確認與專案設定排查。養成「重構後刪 .ncb、版控忽略快取」習慣,可避免 99% 的自動提示疑難雜症。條件允許,**升級現代 VS** 徹底告別 .ncb 時代。