В чем отличие Windows Forms Application C++ и C#
Создаю два одинаковых проекта
Visual C++ - CLR - Windows Forms Application
и
Visual C# - Windows - Windows Forms Application
Исходный файл в C++ получается 48 кб
В C# всего 8 кб
Вопрос
Используют ли оба проекта Microsoft .NET Framework
или проект на C++ это как в Delphi без технологии .NET
???
и почему разный размер исполняемого файла получился? ведь внутри идентичный код
c++/cli использует .net. А просто с++ (win32, win, native и другие префиксы/суффиксы) - нет.
Почему размер разный - нужно смотреть декомпилятором внутрь. Там будет понятно. Возьмите ildasm (встроенный, стандартный) или бесплатный dotpeek от jetbrains + ссылка на хабре. Посмотрите внутрь своих проектов и сравните.
Используют ли оба проекта Microsoft .NET Framework
да
и почему разный размер исполняемого файла получился?
C# это самый родной язык для .net. Все что нужно, уже есть внутри фреймворка. Если чего то нет - проще добавить в фреймворк. Не даром ведь он сотни мегабайт.
C++/CLI - Это костыль. и приходиться делать "переходники". (хотя их можно было бы тоже запихать в фреймворк). Все таки философия с++ немножко перпендикулярна C# и .NET. И Майкрософт создала новый искусственный язык, который и не C++ и не C#.
ведь внутри идентичный код
нет. Он может и выполняет одно и тоже, но код разный.
При компиляции C++/CLI проекта в сборку инлайнится куча сервисного кода. В случае с C# такого "лишнего" кода совсем немного:
get_Default
.ctor
.cctor
Dispose
InitializeComponent
sub_C0
sub_F0
get_ResourceManager
get_Culture
set_Culture
Main
(обе сборки скомпилированы из пустых проектов WindowsFormsApplication)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как сделать возможным использование библиотеки graphicsh в среде Visual Studio 2010?
Есть функция main(), которая вызывает ф-ию addcat()В ф-ии addcat() должен осуществляться вывод printf("sud")
При первом вызове addacc() все проходит успешноПри втором выдаёт ошибку после ввода логина