Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.15;
Скачать: CL | DM;

Вниз

Тест.. Какой компилятор круче ?   Найти похожие ветки 

 
Пастор   (2002-07-21 00:50) [0]

Прога на C++Builder 5 получилась 50kb, a на на Дельфи 17kb !

Почему такая разница ? Если у кого стоит VC - просьба скомпильнуть ее и сообщить получившийся размер..

/*------------------------------------------------------------
Hello, World !
------------------------------------------------------------*/

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;

wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = "HelloWorld" ;
wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;

RegisterClassEx (&wndclass) ;

hwnd = CreateWindow ("HelloWorld", // window class name
"The Hello Program", // window caption
WS_OVERLAPPEDWINDOW, // window style
200, // initial x position
200, // initial y position
200, // initial x size
200, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters

ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
PAINTSTRUCT ps ;
RECT rect ;

switch (iMsg)
{
case WM_PAINT :
hdc = BeginPaint (hwnd, &ps) ;
GetClientRect (hwnd, &rect) ;
DrawText (hdc, "Hello, World", -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

EndPaint (hwnd, &ps) ;
return 0 ;

case WM_DESTROY :
PostQuitMessage (0) ;
return 0 ;
}

return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}


 
Пастор   (2002-07-21 00:51) [1]

А это вариант на Дельфи

program WinApi;

uses
Windows,
Messages;

var
wc : TWndClassEx; // Переменная шаблона класса окна
MainWnd : HWND; // Описатель главного окна
Msg : TMsg; // Переменная для цикла сбора сообщений

function WindowProc(Handle: THandle; Msg: Integer; Wparam: Wparam; Lparam: Lparam):Lresult; stdcall;
var
Rect : TRect;
hDS : HWND;
PS : PaintStruct;
begin
case msg of

wm_paint :
begin
GetClientRect(Handle,Rect);
hDS := BeginPaint(Handle,PS);
GetClientRect(Handle,Rect);
DrawText(hDS, PChar("Hello, World"), -1, Rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
EndPaint(Handle,PS);
end;

wm_destroy :
begin
postquitmessage(0);
Result:=0;
end;

else
Result := DefWindowProc(Handle, msg, wparam, lparam);
end;

end;

begin
{ Заполнение шаблона класса окна }

wc.cbSize := SizeOf(wc);
wc.style := cs_hredraw or cs_vredraw;
wc.lpfnWndProc := @WindowProc;
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
wc.hInstance := HInstance;
wc.hIcon := LoadIcon(0,idi_application);
wc.hCursor := LoadCursor(0,idc_arrow);
wc.hbrBackground := GetStockObject (WHITE_BRUSH) ;
wc.lpszMenuName := nil;
wc.lpszClassName := "HelloWorld" ;

RegisterClassEx(wc); // Регистрация нового класса в системе

MainWnd:=CreateWindow(
"HelloWorld", // имя класса окна
"The Hello Program", // заголовок окна
ws_overlappedwindow, // флаги стилей окна
200, // горизонтальная позиция окна (Left)
200, // вертикальная позиция окна (Top)
200, // ширина окна
200, // высота окна
0, // описатель родительского окна (parent) или окна-владельца (owner)
0, // описатель меню окна (меню нет, нет и описателя)
Hinstance, // описатель приложения
nil // address of window-creation data
);

ShowWindow(MainWnd,CmdShow); // отображаем окно

{ Цикл обработки сообщений }


while GetMessage(Msg,0,0,0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;

end.




 
[NIKEL] ©   (2002-07-21 01:12) [2]

У меня этот код в 8 кб на Билдере получился...


 
Пастор   (2002-07-21 14:58) [3]

> [NIKEL] © У меня этот код в 8 кб на Билдере получился...


Интересно это как ?


 
VuDZ ©   (2002-07-21 15:40) [4]

Release - default settings: 36"864
cl main.cpp /link main.obj LIBCTINY.LIB user32.lib gdi32.lib - 3"584 :>

PS А крутость компилятора определяется теперь по размеру? :D


 
Anatoly Podgoretsky ©   (2002-07-21 16:09) [5]

Конечно, если он е в состоянии сгенерировать 300л Hello World, то значит слабоват, не крут


 
ZZ ©   (2002-07-21 17:33) [6]

Самый крутой тест компиляторов -

программа

uses Windows,SysUtils;

begin
MessageBox(0,"Hello World","Message",MB_OK);
end.


Компилируем на компиляторе Delphi6 - Ура программа скомпилилась.
Теперь на MS VC7 - обломс - прога не компилируется :))

Научные выводы
Данный пример ярко показывает то, что компилятор у Дельфи намного лучше, чем у MS VС!!!!

Данный тест можно провести и с другими языками(средами) программирования


 
drpass ©   (2002-07-21 19:36) [7]

Собственно, и на Delphi эта прога 9 кил занимает, а не 17...
А крутость компилятора лучше всего определять по размеру компилятора... жалко под парашный 6-й билдер отдавать 800 мег. Лучше еще игрушку какую-нибудь поставить


 
VuDZ ©   (2002-07-21 20:13) [8]

у меня VC7.0 console edition занимает 155 - compiler + full sdk (*.h + *.lib) + mfc... это много чи мало?... VC6.0 занимает чуть по меньше...


 
[NIKEL] ©   (2002-07-21 21:49) [9]

глупо мерить крутость компиллера по тому какой размер он дает и тем более сколько занимает место на винте, лучше смотреть какие он дает возможности при работе - а вот в этом Дельфе ой как далеко до до Билдера....


 
drpass ©   (2002-07-21 23:42) [10]

>[NIKEL]
?????
Ты в Delphi-то работал, или так - поставил, по меню полазил и удалил? Насчет размера я пошутил, а вот про Билдер - чистая правда. Последней версией Билдера, в которой можно работать (и, кстати, которая была действительно лучше соответствующей версии Delphi), был BCB4. Но он староват, и нет смысла им пользоваться, так как возможности шестых версий намного выше. А так как BCB5 и 6 - это дрянь высшей пробы, то тут выбор однозначен - Delphi. Обладая теми же возможностями, эта система намного более легкая и стабильная.
Про VC7.0 ничего плохого и хорошего не скажу, у меня до сих пор стоит шестая...


 
Пастор   (2002-07-22 08:22) [11]

> [NIKEL] ©
глупо мерить крутость компиллера по тому какой размер он дает


дело в том что я не даром свой вопрос я поместил в конфу по API, где тусуются те, кто используя чистый API пищут проги очень маленького размера
когда пишешь прогу маленького размера, то крутость компилятора определяется в том числе и размером создаваемого кода.
среднестатистическому пользователю не безразлично сколько скачивать твою прогу 500 kb или 50 kb


 
VAP   (2002-07-22 09:50) [12]

program Hello;
uses Windows;

begin
MessageBox(0,"Hello World","Message",MB_OK);
end.
Кстати, всего 16к занимает.


 
Игорь Шевченко ©   (2002-07-22 12:14) [13]

Пастор (22.07.02 08:22)

Среднестатистическому пользователю не надо скачивать программу "Hello, world" :-)))


 
Пастор   (2002-07-22 12:22) [14]


> Игорь Шевченко ©


очень остроумно :))


 
Игорь Шевченко ©   (2002-07-22 12:26) [15]

Пастор (22.07.02 12:22)

Нет смысла гнаться за размером - лучше гнаться за функциональностью.


 
[NIKEL] ©   (2002-07-22 14:45) [16]

2 drpass © (21.07.02 23:42)
Почему же дрянь высшей пробы? Где обоснования? Я пользуюсь 5 и всем доволен. Также пользуюсь и дельфей. Тут дело в удобстве. Но!Если я хочу компилить pas файлы, то я компилю их прям в билдере, поставить компанент дельфовый? Нет проблем... Сконвертировать проект от VC++? И тут он в помощь.. А то что лучше билдер или дельфи... можно долго спорить... не втом измирении вы смотрите.
2 Пастор
дело в том что я не даром свой вопрос я поместил в конфу по API, где тусуются те, кто используя чистый API пищут проги очень маленького размера

и в чем тут вопрос? очередной тугрик в пользу дельфи захотел кинуть? Потишить народ? И билдер принизить? и конфу главное нужную нашел...

ЗЫ
и не надо больше мерить крутость компиллеров по чисто субъективным меркам, давно уже винты не маленькие и памяти достаточно... тут все дело в стилистике, надо понять, что компиляторы уже давно не расматриваються как вещи в себе их надо рассматривать в контексте IDE... и для определенных целей. Языки же не просто так придумывают, от балды, каждый решает свои задачи.
и не надо говорить что билдер на пол шага всегда хуже\отстает от дельфи - все это гон.


 
Пастор   (2002-07-22 15:10) [17]


> и в чем тут вопрос? очередной тугрик в пользу дельфи захотел
> кинуть? Потишить народ? И билдер принизить? и конфу главное
> нужную нашел...


причем тут это все.. я просто не могу понять, почему у меня на Билдере такой большой эгзешник получился..



Страницы: 1 вся ветка

Текущий архив: 2002.08.15;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.016 c
14-48291
MIg
2002-07-19 17:23
2002.08.15
отладчик на некоторые строчки не попадает........


1-48200
Queen
2002-08-02 23:22
2002.08.15
indy


7-48326
z00z
2002-05-22 14:33
2002.08.15
Хочу видеть работу винча


14-48246
mvg_first
2002-07-18 19:28
2002.08.15
Кто и как использует продукты Rational


14-48271
int64
2002-07-20 23:19
2002.08.15
Чем заменить терминатор.