Visual C++ 6.0包含:C++編譯器、可視化開發工具、輔助工具、C++庫——構成基於Windows的可視化集成開發環境。
Windows主流實現:MSVC 6.0、Borland C++ Builder(標準符合度後者略優)。
.cpp → 處理指令 → .i中間文件.i → 語法/語義分析 → 優化 → 匯編.asm.asm → 機器碼 → 目標文件.obj.obj + 庫文件 → 解析符號 → 可執行.exe/.dll| 組件 | 可執行文件 | 核心職責 |
|---|---|---|
| 編譯器 | cl.exe | C++源碼→目標代碼 |
| 鏈接器 | link.exe | 目標文件→可執行模塊 |
| 資源編譯器 | rc.exe | .rc資源腳本→.res二進制資源 |
| 庫管理器 | lib.exe | .obj打包為靜態庫.lib |
| 調試器 | msdev.exe (內置) | 源級調試、斷點、監視、調用棧 |
.dsw):包含多個項目.dsp):單一輸出單元(EXE/DLL/靜態庫).dsp自動轉換為.vcxproj/W4 /WX /std:c++17替代舊選項/MD或/MT,消除混用風險pch.h替代stdafx.h,配合/Yc /Yunullptr、範圍for、智能指針、auto等現代特性| 問題 | VC++ 6.0行為 | 現代標準行為 | 修正方案 |
|---|---|---|---|
| for循環變量作用域 | 循環外可見 | 循環內部作用域 | 重命名或調整作用域 |
| 模板友元聲明 | 寬鬆接受 | 嚴格要求template<> | 補全模板參數列表 |
| 標準庫命名空間 | 隱式全局污染 | 嚴格std:: | 補全命名空間前綴 |
| 異常規範 | 支持throw() | C++11棄用,C++17移除 | 改用noexcept |