exe-шники в C++ Builder и Delphi

Форум для программистов

Сообщение Spike » Вт июн 15, 2004 1:31 am

<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Тут в форуме есть еще одна тема посвященная тому же, что и мы сейчас обсуждаем, так вот там кто-то сказал, что Нужно убрать галочку в Project -> Options -> Packages -> Build with runtime packages, тогда размер файла увеличивается, и в C++ Builder и в Delphi становится примерно одинаковым<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
тогда прогу на компе без дельфи запустить нельзя

для создания маленьких по размеру прог в дельфи надо использовать KOL, <a href='http://kol.mastak.ru/' target='_blank'>http://kol.mastak.ru/</a>
<!--coloro:blue--><span style="color:blue"><!--/coloro--><a href="http://www.foobar2000.ru/" target="_blank">www.foobar2000.ru - все о любимом аудиоплеере.</a><!--colorc--></span><!--/colorc-->
RUSnet #foobar2000 #miranda.
<a href="http://www.foobar2000.ru/" target="_blank">Изображение</a>

<!--coloro:red--><span style="color:red"><!--/coloro-->Даша, я люблю тебя!<!--colorc--></span><!--/colorc-->
Spike
Генерал-лейтенант
 
Сообщений: 3036
Зарегистрирован: Вт мар 18, 2003 7:34 am
Откуда: Ачинск, Красноярский край
Пункты репутации: 0

Сообщение Sh0Ck_filE » Вт июн 15, 2004 7:17 pm

Я предлагаю опыт: на всех перечисленных средах сваять небольшие проги на чистом винАпи, а потом сравнить... я сам этим этим займусь тоже, просто чтобы потом о подтасовке не говорили :)
Сравнивать будем дизасмом :)
<!--coloro:red--><span style="color:red"><!--/coloro-->"Для того чтобы быть человеком, надо им какое-то время не быть."<!--colorc--></span><!--/colorc--> ©<a href="http://zhurnal.lib.ru/b/brigadir_j_a/" target="_blank">Ю. А. Бригадир.</a>
<a href="http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=437143" target="_blank">Registered Linux user #437143</a>.
Sh0Ck_filE
Генерал-лейтенант
 
Сообщений: 3474
Зарегистрирован: Пн апр 21, 2003 6:20 pm
Откуда: СССР
Пункты репутации: 0

Сообщение Леха » Вт июн 15, 2004 7:22 pm

Предлагаю даже такой текст:
Код: выделить все
#include <windows.h>
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);

int WINAPI WinMain(HINSTANCE hInstance,
                  HINSTANCE hPrevInstance,
                  LPSTR     lpCmdLine,
                  int       nCmdShow)
{
   HWND hwnd;
   MSG msg;
   WNDCLASS w;
   memset(&w,0,sizeof(WNDCLASS));
   w.style = CS_HREDRAW | CS_VREDRAW;
   w.lpfnWndProc = WndProc;
   w.hInstance = hInstance;
   w.hbrBackground = (HBRUSH)GetStockObject(BLACK_PEN);
   w.lpszClassName = "My Class";
   RegisterClass(&w);
   hwnd = CreateWindow("My Class", "Вот это окно!!!", WS_OVERLAPPEDWINDOW,
       300, 200, 200, 180, NULL, NULL, hInstance, NULL);
   ShowWindow(hwnd,nCmdShow);
   UpdateWindow(hwnd);
   while(GetMessage(&msg,NULL,0,0))
   {
       TranslateMessage(&msg);
       DispatchMessage(&msg);
   }
   return msg.wParam;
}

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
   switch (Message){
   case WM_DESTROY:
       PostQuitMessage(0);
       break;
   default:
       return DefWindowProc(hwnd, Message, wparam, lparam);
   }
   return 0;
}
Леха
Полковник
 
Сообщений: 1261
Зарегистрирован: Чт мар 20, 2003 8:52 pm
Откуда: Россия, Москва, Улица, Дом, Квартира
Пункты репутации: 0

Сообщение Spike » Ср июн 16, 2004 12:36 am

на bpw7 (borland pascal 7 for win) наверное меньше будет размер, чем на остальных языках, не считая асма.
<!--coloro:blue--><span style="color:blue"><!--/coloro--><a href="http://www.foobar2000.ru/" target="_blank">www.foobar2000.ru - все о любимом аудиоплеере.</a><!--colorc--></span><!--/colorc-->
RUSnet #foobar2000 #miranda.
<a href="http://www.foobar2000.ru/" target="_blank">Изображение</a>

<!--coloro:red--><span style="color:red"><!--/coloro-->Даша, я люблю тебя!<!--colorc--></span><!--/colorc-->
Spike
Генерал-лейтенант
 
Сообщений: 3036
Зарегистрирован: Вт мар 18, 2003 7:34 am
Откуда: Ачинск, Красноярский край
Пункты репутации: 0

Сообщение Magister » Ср июн 16, 2004 4:04 am

Для кода
Код: выделить все
program test;

uses windows, messages;

var   w : TWndClass;
     vHWND : HWND;
     Mesg : TMsg;

function WndProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult; stdcall;
begin
 case msg of
   WM_DESTROY :
   begin
     Result:=0;
     postquitmessage(0);
     exit;
   end;
 end;
 Result:= DefWindowProc(wnd,msg,wparam,lparam);
end;

begin
w.style:=cs_hredraw or cs_vredraw;
w.lpfnWndProc:=@WndProc;
w.hInstance:=HInstance;
w.hbrBackground:=COLOR_BTNFACE+1;
w.lpszClassName:='My Class';
RegisterClass(w);
vHWND:=CreateWindow('My Class','Вот это окно!!!',WS_OVERLAPPED,
                     300,200,200,180,0,0,Hinstance,nil);
ShowWindow(vHWND,CmdShow);

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

end.

В Delphi 4.5 размер получился 15 872 б.
В Delphi 6.0 размер получился 8 704 б.
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0

Сообщение Spike » Ср июн 16, 2004 4:24 am

2Magister
Хм, я думал наоборот должно быть. Ты опции у компилятора одинаковые делал?

d7 опции по умолчанию - 14336
выключенный Optimization - 14848

пример твой компилил
Последний раз редактировалось Spike Ср июн 16, 2004 4:32 am, всего редактировалось 1 раз.
<!--coloro:blue--><span style="color:blue"><!--/coloro--><a href="http://www.foobar2000.ru/" target="_blank">www.foobar2000.ru - все о любимом аудиоплеере.</a><!--colorc--></span><!--/colorc-->
RUSnet #foobar2000 #miranda.
<a href="http://www.foobar2000.ru/" target="_blank">Изображение</a>

<!--coloro:red--><span style="color:red"><!--/coloro-->Даша, я люблю тебя!<!--colorc--></span><!--/colorc-->
Spike
Генерал-лейтенант
 
Сообщений: 3036
Зарегистрирован: Вт мар 18, 2003 7:34 am
Откуда: Ачинск, Красноярский край
Пункты репутации: 0

Сообщение aTeos » Ср июн 16, 2004 5:25 am

2Anthony Fox
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Но я еще хочу сказать такую вещь, что если убрать Debug, то размер файла в Delphi уменьшается до ~15 Кб (галочка Build with runtime packages стоит)<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Где где где??? Где убрать Debug?
aTeos
Капитан
 
Сообщений: 215
Зарегистрирован: Сб мар 06, 2004 4:33 pm
Пункты репутации: 0

Сообщение Spike » Ср июн 16, 2004 5:33 am

2aTeos
не надо
работать будет только у тебя
<!--coloro:blue--><span style="color:blue"><!--/coloro--><a href="http://www.foobar2000.ru/" target="_blank">www.foobar2000.ru - все о любимом аудиоплеере.</a><!--colorc--></span><!--/colorc-->
RUSnet #foobar2000 #miranda.
<a href="http://www.foobar2000.ru/" target="_blank">Изображение</a>

<!--coloro:red--><span style="color:red"><!--/coloro-->Даша, я люблю тебя!<!--colorc--></span><!--/colorc-->
Spike
Генерал-лейтенант
 
Сообщений: 3036
Зарегистрирован: Вт мар 18, 2003 7:34 am
Откуда: Ачинск, Красноярский край
Пункты репутации: 0

Сообщение poiuytr » Ср июн 16, 2004 6:53 am

bcb 5
4 096 байт.
<a href='http://rarview.times.lv/Project1.exe' target='_blank'>линк</a> на ехе
Hasta la victoria siempre!
poiuytr
Капитан
 
Сообщений: 233
Зарегистрирован: Ср авг 14, 2002 6:04 pm
Откуда: Рига, Латвия
Пункты репутации: 0

Сообщение Spike » Ср июн 16, 2004 7:06 am

pure asm
зделает кто?
<!--coloro:blue--><span style="color:blue"><!--/coloro--><a href="http://www.foobar2000.ru/" target="_blank">www.foobar2000.ru - все о любимом аудиоплеере.</a><!--colorc--></span><!--/colorc-->
RUSnet #foobar2000 #miranda.
<a href="http://www.foobar2000.ru/" target="_blank">Изображение</a>

<!--coloro:red--><span style="color:red"><!--/coloro-->Даша, я люблю тебя!<!--colorc--></span><!--/colorc-->
Spike
Генерал-лейтенант
 
Сообщений: 3036
Зарегистрирован: Вт мар 18, 2003 7:34 am
Откуда: Ачинск, Красноярский край
Пункты репутации: 0

Сообщение Magister » Ср июн 16, 2004 7:06 am

2Spike Lee
Опции одинаковые, дефолтные. Оптимизация включена.
При выключенной оптимизации в D4 размер 16 384, в D6 размер 8 704 (как и при включенной :-\)
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0

Сообщение Sh0Ck_filE » Ср июн 16, 2004 8:47 am

;2 с половиной килобайта Изображение
Код: выделить все
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

.data
ClassName db "SimpleWinClass",0
AppName  db "Our First Window",0

.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
.code
start:
   invoke GetModuleHandle, NULL
   mov    hInstance,eax
   invoke GetCommandLine
   mov    CommandLine,eax
   invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
   invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
   LOCAL wc:WNDCLASSEX
   LOCAL msg:MSG
   LOCAL hwnd:HWND
   mov   wc.cbSize,SIZEOF WNDCLASSEX
   mov   wc.style, CS_HREDRAW or CS_VREDRAW
   mov   wc.lpfnWndProc, OFFSET WndProc
   mov   wc.cbClsExtra,NULL
   mov   wc.cbWndExtra,NULL
   push  hInstance
   pop   wc.hInstance
   mov   wc.hbrBackground,COLOR_WINDOW+1
   mov   wc.lpszMenuName,NULL
   mov   wc.lpszClassName,OFFSET ClassName
   invoke LoadIcon,NULL,IDI_APPLICATION
   mov   wc.hIcon,eax
   mov   wc.hIconSm,eax
   invoke LoadCursor,NULL,IDC_ARROW
   mov   wc.hCursor,eax
   invoke RegisterClassEx, addr wc
   INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
          WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
          CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\
          hInst,NULL
   mov   hwnd,eax
   invoke ShowWindow, hwnd,SW_SHOWNORMAL
   invoke UpdateWindow, hwnd
   .WHILE TRUE
 invoke GetMessage, ADDR msg,NULL,0,0
 .BREAK .IF (!eax)
 invoke TranslateMessage, ADDR msg
 invoke DispatchMessage, ADDR msg
   .ENDW
   mov     eax,msg.wParam
   ret
WinMain endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
   .IF uMsg==WM_DESTROY
 invoke PostQuitMessage,NULL
   .ELSE
 invoke DefWindowProc,hWnd,uMsg,wParam,lParam  
 ret
   .ENDIF
   xor eax,eax
   ret
WndProc endp
end start
Последний раз редактировалось Sh0Ck_filE Ср июн 16, 2004 11:32 am, всего редактировалось 1 раз.
<!--coloro:red--><span style="color:red"><!--/coloro-->"Для того чтобы быть человеком, надо им какое-то время не быть."<!--colorc--></span><!--/colorc--> ©<a href="http://zhurnal.lib.ru/b/brigadir_j_a/" target="_blank">Ю. А. Бригадир.</a>
<a href="http://counter.li.org/cgi-bin/runscript/display-person.cgi?user=437143" target="_blank">Registered Linux user #437143</a>.
Sh0Ck_filE
Генерал-лейтенант
 
Сообщений: 3474
Зарегистрирован: Пн апр 21, 2003 6:20 pm
Откуда: СССР
Пункты репутации: 0

Сообщение Spike » Чт июн 17, 2004 12:16 am

Sh0Ck_filE - чемпион! Куда нам против асма??? =)
<!--coloro:blue--><span style="color:blue"><!--/coloro--><a href="http://www.foobar2000.ru/" target="_blank">www.foobar2000.ru - все о любимом аудиоплеере.</a><!--colorc--></span><!--/colorc-->
RUSnet #foobar2000 #miranda.
<a href="http://www.foobar2000.ru/" target="_blank">Изображение</a>

<!--coloro:red--><span style="color:red"><!--/coloro-->Даша, я люблю тебя!<!--colorc--></span><!--/colorc-->
Spike
Генерал-лейтенант
 
Сообщений: 3036
Зарегистрирован: Вт мар 18, 2003 7:34 am
Откуда: Ачинск, Красноярский край
Пункты репутации: 0

Сообщение Scalder » Чт июн 17, 2004 3:34 am

Эх, нам бы такие инструменты в свое время...
2Spike Lee
Это не асм... по прайней мере не так он выглядел в мое время :)
2Sh0Ck_filE
Это что за прога так его расшерстила? Этож как книгу его можно читать :)
<!--coloro:green--><span style="color:green"><!--/coloro-->А что я не так сказал?<!--colorc--></span><!--/colorc-->
<!--coloro:red--><span style="color:red"><!--/coloro-->А ты как думал? Конечно это ИМХО<!--colorc--></span><!--/colorc-->

<!--coloro:red--><span style="color:red"><!--/coloro-->>В каждом системном администраторе есть что-то от Бога.<!--colorc--></span><!--/colorc-->
В каждом программисте есть что-то от Бога для Бога. :-р
<a href="http://www.erepublik.com/en/referrer/mrScalder" target="_blank">Изображение</a>
Scalder
Генерал-майор
 
Сообщений: 2587
Зарегистрирован: Пн апр 08, 2002 10:21 am
Пункты репутации: 0

Сообщение Magister » Чт июн 17, 2004 3:41 am

2Sh0Ck_filE
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->2 с половиной килобайта <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
супер :) переходим на асм :)
<!--sizeo:1--><span style="font-size:8pt;line-height:100%"><!--/sizeo--><!--coloro:red--><span style="color:red"><!--/coloro-->все беды - от недостатка информации<!--sizec--></span><!--/sizec--><!--colorc--></span><!--/colorc-->
Magister
Генерал-майор
 
Сообщений: 2501
Зарегистрирован: Вт авг 06, 2002 4:22 am
Пункты репутации: 0

Пред.След.

Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron