day & night

Визуал С++ в топку!!!, МС опять облажались!
Дата обновления: , перейти к новому сообщению
#1
ZaHack



Большой Брат
Group Icon

Группа: Заблокированные
Сообщений: 1.252
Регистрация: 24.01.2006
Из: Where The Eagles Fly
Пользователь №: 333


Респектов: 117
-----X----




Всем, конечно, давно прожужжали уши насчет того что, Си круче Дельфи из-за размера получающихся ЕХЕшников.Этот аргумент был одним из самых важных в HollyWar'ах пасквилянтов и сишников.Но так ли это на самом деле? Я, от нечего делать решил проверить.
Почему же бинарники Дельфи весят так много? Может у Борланд плохие программсты? Нет.Программа, написанная на VB или на VC с применением MFC, занимает гораздо меньше места. Все потому, что великая и ужасная компания Microsoft приложила к этому свою лапу. MFC и runtime-библиотеки в VB весят ничуть не меньше, просто они скомпилены в DLL и входят в поставку Windows, а значит, их код не приходится таскать с собой в программах. В защиту Borland можно сказать, что такая возможность присутствует и в Delphi. Нужно просто в настройках проекта поставить галочку Build with runtime packages, тогда программа значительно уменьшится, но потребует наличия соответствующих runtime-библиотек. Естественно, эти библиотеки в поставку винды не входят, но в этом надо винить не Борланд, а монопольную политику мелкософта.
Значит будем программировать на чистом API ради чистоты эксперимента (каламбур получился smile.gif ). Итак VC++ 7, поехали. Нашел классический АПИшный Hello World на Си (плохо знаю эту среду, так что юзал гуугль):
#include
int WINAPI WinMain(HINSTANCE,HINSTANCE,PTSTR,int)
{
MessageBox(0,'Hello World', 'test', 0);
return 0;
}

Скомпильнул. 21 Кб - неплохо, очень неплохо, если вспомнить, сколько занимают дельфийские, даже пустые проекты.Средний размер пустой формы с кнопкой - 360 кб.
Теперь черед Delphi 7. Его я знаю лучше, так что функции смог задать более грамотно:

program Project1;
function MessageBox(hWnd: LongWord;lpText, lpCaption: PChar;uType: LongWord): Integer;stdcall;external 'user32.dll' name 'MessageBoxA';

procedure ExitProcess(uExitCode: LongWord);stdcall; external 'kernel32.dll' name 'ExitProcess';
begin
MessageBox(0, 'Hello World', 'test', 0);
ExitProcess(0);
end.

Естественно я делал через File-New-Console Application, а не, из автосоздаваемой формы. Компилируем, смотрим размер,и...делайте ваши ставки, господа...файл весит всего 13,5 Кб!!!!!
А что это значит? А это значит, что Дельфи оптимизирует лучше, линкует и компилирует тоже лучше, и надо сказать, быстрее. Майкрософт опять облажалась! Все, в топку её "визуальный" Си, переходим на Борланд Си++ wink.gif
ЗЫ Установил Visual C++ 2005 (типа, самый новый, типа прорыв) попытался скомпилить этот мессагебокс - не получилось, написал "windows.h - не найден".Подумал, что это у меня руки кривые и запустил поиск этого файла в папке с сишкой.И нет его там. Нет и все. Майкрософт опять плюнула в лицо тысячам программистов-сишников, "перейдя на новые технологии", выкинув вообще этот хидер из дистрибутива VC.==> Майкрософт в топку! mad.gif (еще раз)
User is offline
Go topGo end

Ответов(10 - 12)
12.05.2006 - 22:36
#11
ZaHack



Большой Брат
Group Icon

Группа: Заблокированные
Сообщений: 1.252
Регистрация: 24.01.2006
Из: Where The Eagles Fly
Пользователь №: 333


Респектов: 117
-----X----




Блина, ошибочка вышла! Оказывается, у меня Visual C Express Edition! То-то я удивлялся, что дистрибутив так мало весит...Это рекламная версия Студии от мелких, так что большинства функций там нет или урезаны.
PS Все остальное - правда.Могу выложить видеоролик, с компиляцией и потом заценить размер ЕХЕшника.
User is offline
Go topGo end
12.05.2006 - 22:53
#12
ZaHack



Большой Брат
Group Icon

Группа: Заблокированные
Сообщений: 1.252
Регистрация: 24.01.2006
Из: Where The Eagles Fly
Пользователь №: 333


Респектов: 117
-----X----




QUOTE(Гражданин @ 12.05.2006 - 0:44)
ВыпрЕмляй руки. Я сам компилел мессаджебокс, на VS2005, ради спортивного интереса.
*



Выпрямляй правописание! wink.gif

Выкладываю "хэлловорлды" чтобы все могли убедиться, что я не вру, как думают некоторые
_http://rudn007.hut1.ru/C.rar
User is offline
Go topGo end
24.01.2009 - 19:59
#13
Ghost99



Новичок


Группа: Пользователи
Сообщений: 1
Регистрация: 24.01.2009
Пользователь №: 1.260.348


Респектов: 0
----------


Предупреждений:


Цитата | Quote(ZaHack @ 12.05.2006 - 23:53)
Цитата | Quote(Гражданин @ 12.05.2006 - 0:44)
ВыпрЕмляй руки. Я сам компилел мессаджебокс, на VS2005, ради спортивного интереса.
*



Выпрямляй правописание! wink.gif

Выкладываю "хэлловорлды" чтобы все могли убедиться, что я не вру, как думают некоторые
_http://rudn007.hut1.ru/C.rar
*


Наткнулся случайно на топик. Вот вам пример на VS 2003 C++
размер 2 килобайта ph34r.gif

Присоединённые файлы
Присоединённый файл  Test000.rar ( 4.24кб ) Кол-во скачиваний: 5
User is offline
Go topGo end

Topic Options
Сейчас: 29.04.2024 - 10:36
Мобильная версия | Lite версия