The Definition and Evolution of Microsoft Visual C++ [MiniTool Wiki]
What Is Microsoft Visual C ++
Microsoft Visual C++ (MSVC), an integrated development environment (IDE) product, is used for C, C++/CLI programming languages. C++ is a general-purpose programming language that supports static data type. It checks and supports multiple programming paradigms. In this post of MiniTool, more information about Microsoft Visual C++ will be uncovered to you.
Besides, it supports a variety of programming styles such as program design, data abstraction, object-oriented programming, and generic programming.
MSVC is a proprietary product. It was an independent product from the very beginning, but it became a part of Visual Studio and was available as trial software and free software. It has tools for developing and adjusting C++ code, especially the code for Windows API, DirectX and .NET.
Many applications need Microsoft Visual C ++ redistributable runtime library packages to function properly. These packages are usually installed independently of the application, allowing multiple applications to use the package and only need to be installed once.
These Microsoft Visual C ++ redistributable components and runtime package are primarily installed in the standard libraries used by many applications.
If you often use Microsoft Visual C++, you may have an interest in this post: MiniTool Power Data Recovery Error Code 14001
The Evolution of Microsoft Visual C++
The predecessor of Visual C++ was called Microsoft C/C++. There is also a Microsoft QuickC 2.5 and a Microsoft QuickC for Windows 1.0. The Visual C++ compiler is still called Microsoft C/C++. Since the release of Microsoft Visual C ++ 2015 Update 2, the version number is 19.00.23918.
At the beginning, C++ appeared as an enhanced version of the C language. Starting with adding classes to the C language, new features are constantly added. The development process of C++ can be divided into three phases.
The first phase was from the 1980s to 1995. At this stage, the C++ language is basically an object-oriented language of the traditional type, and with the efficiency of being close to the C language. It occupies a considerable share in the development language used by the industry.
The second phase was from 1995 to 2000. During this stage, due to the emergence of the standard template library (STL) and later libraries such as Boost, generic programming has occupied more and more weight in C++. Of course, as the appearance of Java, C# and other languages and the large-scale decline in hardware prices have given C++ a certain impact.
The third phase was from 2000 to now. Due to the emergence of production programming and template metaprogramming represented by of Loki, MPL and other libraries, C++ has emerged as new high in the development history.
The emergence of these new technologies and the integration with the original technology have made C++ as the most complex member of today’s mainstream programming language.
In addition, as far as learning C++ is concerned, it can be considered as an independent language because it does not rely on C language. Based on that fact, you can learn C++ directly without learning C language. Some people even think that C++ can completely replace C in most cases.
The Compatibility of Microsoft Visual C++
ABI: Visual C++ compiler ABI has historically changed between major compiler versions. This is especially true for STL containers, where the container size varies greatly between compiler versions.
Therefore, when you want to enable client code compiled with different compiler versions, Microsoft does not recommend using the C++ interface at the module boundary. Microsoft recommends using the C or COM interface instead of C++, which is designed to have a stable ABI between compiler versions.
C runtime library: Visual C++ contains different versions of C runtime libraries, which means that you can compiler code suing any available library. However, if you use different components in one application, this operation may result in some issues.
Microsoft recommends using the multi-threaded dynamic link library (/MD or /MDd compiler option) to avoid possible problems.
C: Though the product is evolved from IDE of C programming language, the compiler’s support for the language for many years only conforms to the original version of the C standard. That can be tracked to 1989 but it does not conform to the revised version of the C99 standard.
Visual C++ 2013 finally added support for various C99 functions in its C mode, but it was still not complete. But it keeps improving to solve existed issues.