A unique thing about the Visual C++ Express tool is that it can be used to create 2 different types of Windows applications: “managed” .NET Framework applications as well as “native” applications written specifically for the Windows operating system.
Let’s clarify these terms “managed” and “native” code:
-> Native Windows applications can run on 32 or 64-bit computers that are running a version of the Windows Operating system. These types of programs are executed directly by the computer’s CPU (or Central Processing Unit) and so must be written expressly for a specific platform. So when we say “native” code we mean applications that run natively on a particular platform, in this case the Windows operating system. Native programs provide direct access to the operating system and hardware. This gives you a lot of power and performance, but as my Mom always used to say, with power comes responsibility. So when you write native code, you’ll have to be more careful because it’s easy to mess things up - just make sure to follow good programming practices. And like building a house from scratch, you’ll also have to do a lot of the plumbing and framing yourself.
On the other hand, “managed” code provides a runtime environment called the Common Language Runtime or CLR that shields you from this complexity – it provides a pre-built foundation for you, but by abstracting from the underlying hardware and operating system it has less flexibility and – potentially – slower performance. Managed programs such as Windows Forms applications require that the .NET framework be installed on the target system.
Here are some of the benefits and drawbacks of each type of program. Keep in mind that these are generalizations and are not true in every scenario:
Native:
+ Fast performance
+ Smallest footprint
− More complex to write
− Dependent on specific platform
Managed:
+ Portable – runs on any platform with a CLR
+ Easier to write
− Can run slower
− May require more system resources
This means that C++ is the language of choice if you want to build high-performance applications or programs that directly access Windows devices or resources.
Visual C++ allows for a lot of flexibility and freedom when writing programs, so you can tailor your code for a specific hardware platform, and you can reference low-level features of the system.
Because the language gives you so much power, there are more details you should be aware of, as compared to other languages like C# or Visual Basic