現象
將專案資料夾複製並全局重命名文件(`.dsw`、`.cpp`、`.h` 等),重新打開編譯報錯:
ReadLoop.obj : error LNK2001: unresolved external symbol _URLDownloadToFileA@20
原因分析
- 庫依賴丟失:`URLDownloadToFile` 在 `urlmon.lib` 中。重命名專案可能導致專案屬性「鏈接器→輸入→附加依賴項」清空或路徑失效。
- 預編譯頭/專案配置不同步:舊 `.pch`、`.ncb`、`.suo` 等中間文件與新專案名不匹配。
- 頭文件包含順序/宏定義:需 `#include ` 並確保 `_WIN32_IE` 版本宏正確。
解決步驟
- 刪除所有中間文件(`Debug`/`Release`、`*.ncb`、`*.suo`、`*.pch`)。
- 專案屬性 → 鏈接器 → 輸入 → 附加依賴項 添加 `urlmon.lib`。
- 確認 `#include ` 在使用前,且無命名空間污染。
- 完整重建(Clean + Rebuild)。
教訓
VC++ 專案重命名建議用 IDE「另存為專案」或專用腳本,手動改名極易遺漏配置。