Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
Пастор   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.006 c
3-47931
mazepa
2002-07-25 11:22
2002.08.15
SQL Help


7-48334
frost666
2002-06-03 11:16
2002.08.15
Как не запачкать реестр своими записями и притом...


4-48363
tretmike
2002-06-10 12:28
2002.08.15
Как опредилить имя файла приложения, зная хендл окна


14-48300
Lola
2002-07-17 15:44
2002.08.15
Лето... Жара... Все на пляж!!!


3-47942
Evyshka
2002-07-24 09:27
2002.08.15
MIdas





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский