Форум: "Потрепаться";
Текущий архив: 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.007 c