热门问题
时间线
聊天
视角
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