热门问题
时间线
聊天
视角
Microsoft Visual C++
C++开发工具 来自维基百科,自由的百科全书
Remove ads
Microsoft Visual C++(簡稱Visual C++、MSVC、VC++或VC)是微軟公司的C++開發工具,具有整合式開發環境,可提供編輯C語言,C++以及C++/CLI等程式語言。VC++整合了便利的除錯工具,特別是整合了微軟Windows作業系統應用程式介面(Windows API)、三維動畫DirectX API,微軟.NET框架。目前最新的版本是Microsoft Visual C++ 2022。
Remove ads
風格
Visual C++以擁有語法突顯、IntelliSense(智慧型提示)以及進階除錯功能而著稱。比如,它允許使用者進行遠端除錯,單步執行等。還有允許使用者在除錯期間重新編譯被修改的代碼,而不必重新啟動正在除錯的程式。其編譯及建立預編譯頭檔案(stdafx.h
)、最小重建功能及累加連結(link)著稱。這些特徵明顯縮短程式編輯、編譯及連結的時間花費,在大型軟體計畫上尤其顯著。
發行版本
Visual C++被整合在Visual Studio之中,但仍可單獨安裝使用。
通常細分為多個發行版本。以Visual C++ 2013為例:
- Visual C++ 2013 Community社群版(功能同專業版)(非商業免費)
- Visual C++ 2013 Express速成版
- Visual C++ 2013 Professional專業版
- Visual C++ 2013 Premium進階版
- Visual C++ 2013 Ultimate旗艦版
其中Microsoft Visual C++ 2013 Express可從MSDN的網站免費下載使用,並且不限制商業使用(但不包含MFC)。
歷史
微軟的C/C++編譯器有一個內建的宏_MSC_VER
來表示編譯器的目前版本。[3]
Visual C++的前身是Microsoft C/C++。還有相關產品:Microsoft QuickC 2.5 與Microsoft Quick C for Windows 1.0. Visual C++ 編譯器仍然叫做Microsoft C/C++。例如Visual C++ 2015 Update 2的版本號是19.00.23918.
Remove ads
語言標準支援
在Visual C++ 2012以前,完全不支援C99與C11的新特性,僅支援1989年版的ANSI C。[28]Visual C++ 2012開始在C模式下支援C99的部分特性,如designated initializers、compound literals、_Bool
類型。Visual C++ 2013很大改進了對C99特性的支援。[29] Visual C++ 2015基本上完整支援了C99標準庫,但需要編譯器尚未支援的C99語言特性的那部分標準庫除外。[30]
至VC++2017 Version 15.7已經完全實現了C++17
詳細情況見[31]
工具鏈生態環境
- Universal CRT (UCRT)包含了C99執行時庫的函式與全域變數。UCRT現在是Windows component,隨Windows 10安裝。UCRT的靜態庫、DLL的匯入庫、標頭檔是Windows 10 SDK的一部分。
- vcruntime庫包含Visual C++ CRT實現相關的代碼,如例外處理、除錯支援、執行時檢查、類型資訊、實現細節與特定擴充庫函式。 vcruntime庫相關於特定編譯器。
- CRT(C 執行時庫)初始化庫處理行程啟動(CRT startup)、內部的逐執行緒的初始化、終止。CRT初始化庫相關於特定編譯器。CRT初始化庫總是靜態連結,即使使用了動態連結的UCRT。
- 對於本地代碼與受管代碼混合的情形,使用/clr編譯選項,這會動態連結 UCRT與vcruntime,靜態連結msvcmrt.lib或msvcmrtd.lib;msvcmrt.lib或msvcmrtd.lib提供了受管代碼與本地CRT之間的proxy。對於純受管代碼情形,使用/clr:pure編譯選項,這會靜態連結msvcurt.lib或msvcurtd.lib。
- msvcmrt.lib、msvcmrtd.lib,用於 DLL UCRT 和 vcruntime 的混合本機和代管 CRT 啟動的除錯版本的靜態庫。不可再分發。
- UCRT現在是一個 Windows 組件,並作為 Windows 10 及更高版本的一部分提供。UCRT 的靜態庫、DLL 匯入庫和標頭檔現在可以在 Windows SDK 中找到[32]。
編譯時,根據專案是除錯版還是發布版,動態還是靜態連結執行時庫,編譯器可自動使用預設庫。如果使用編譯選項/nodefaultlib,需要顯式指定使用的庫。對於VC++2015,所有下述庫均為多執行緒:[33]
Remove ads
Visual C++編譯出的應用程式,其執行環境通常需要安裝Visual C++執行時庫。官方下載網址見[34]。
Microsoft C++ Build Tools是一套MSVC工具集,通過可指令碼化、單獨安裝器,而不需要Visual Studio。如果你通過命令列方式開發程式可以使用這套工具。
從2021年4月26日開始,Visual Studio 2015和更老版本的web安裝器檔案被從Microsoft Download Center刪除。[35] 這些古老的產品可從 「Downloads - Visual Studio Subscriptions Portal」下載後用ISO images安裝。
參見
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads