What is the difference between Windows Forms Application C++ and C #
Create two identical projects
Visual C++ – CLR – Windows Forms Application
and
Visual C # – Windows – Windows Forms Application
Source file in C++ It turns out 48 kb
in C # only 8 kb
question
Do both projects Microsoft .NET Framework
or project on C++ is like in Delphi without .NET technology
???
And why is the different size of the executable file turned out?
After all, inside identical code
Answer 1, Authority 100%
C++ / CLI uses .NET. And just C++ (Win32, Win, Native and other prefixes / suffixes) – no.
Why size is different – you need to watch the decompiler inside. There will be clear. Take iLDASM (built-in, standard) or free Dotpeek from Jetbrains + Link to HabrĂ© . Look inside your projects and compare.
Do both projects Microsoft .NET Framework
yes
And why is the different size of the executable file turned out?
C # is the most native language for .NET. All you need, already inside the framework. If something is not – it’s easier to add to the framework. Not for nothing he is hundreds of megabytes.
C++ / CLI is a crutch. And you have to do “adapters”. (Although they could also be crammed into the framework). All the same, the C++ philosophy is slightly perpendicular to C # and .NET. And Microsoft created a new artificial language, which is not C++ and not C #.
After all, inside identical code
No. It can perform the same thing, but the code is different.
Answer 2, Authority 80%
When compiling C++ / CLI project to assemble the a bunch of service code .
In the case of C #, such a “superfluous” code is quite a bit:
get_default
.ctor
.Cctor
Dispose.
InitializeComponent.
sub_c0.
sub_f0.
get_resourcemanager
Get_culture.
set_culture.
Main.
(both assemblies are compiled from empty WindowsFormsApplication projects)