錯誤現象
在 Win7 上開發的 MFC 程式(Debug 版),複製到 XP 執行時彈出 Debug Assertion Failed 對話框,Release 版則正常。
可能原因
- C Runtime 版本不相容:VS2010 預設連結的 CRT 可能需要更新的 OS 版本。
- Debug 版包含斷言檢查:某些參數驗證在 XP 環境下失敗(如檔案路徑、記憶體配置差異)。
- 缺少對應的 Visual C++ Redistributable。
解決步驟
- 在專案屬性 → C/C++ → Code Generation → Runtime Library 選 Multi-threaded Debug (/MTd) 靜態連結 CRT,避免依賴外部 DLL。
- 或安裝 Visual C++ 2010 SP1 Redistributable Package (x86) 到 XP 機器。
- 專案屬性 → Linker → System → Minimum Required Version 設為
5.01(XP 對應版本)。
- 在 Win7 上以「相容模式:Windows XP (Service Pack 3)」執行測試,確認行為一致。
建議
正式部署請使用 Release 版,並靜態連結 CRT(/MT),減少環境依賴。