[Win API] Размер программы и цвет Label

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Kandi, 18 Apr 2012.

  1. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Всем как всегда привет) Вот начал изучать WinAPI, но тут же появилось пару вопросов, на некоторых сайтах видел, что мол *.exe у них весит 15кб, у меня почему-то он весит аж 30+кб, что за ... ??:D
    Пишу в Rad Studio 2010...
    Второй вопрос как поменя цвет фона в Label и цвет текста какими функциями? Может кто-то подкинуть кусочек кода? Хотя бы от руки, просто SetColorText( hwnd, color) не хочет перерисовывать текст! :\
     
  2. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    А не все ли равно, каков размер проги? У меня консольные проги по 1.5 МБ получаются...
     
  3. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Code:
    #pragma comment(linker, "/merge:.rdata=.text")
    #pragma comment(linker, "/merge:.data=.text")
    
    #pragma comment(linker, "/ENTRY:main")
    #pragma comment(linker, "/STACK:65536,65536")
    И о чудо. Hello World Занимает пару килобайт.
     
  4. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    отключи все модули кроме shellapi и будет счастье.для изменения цвета-SetTextColor. вообще label есть как контрол,но нет поняти вин апи.для того что бы писать текст надо рисовать в обработчике WM_PAINT, либо для смены цвета юзать посылку сообщений.
     
  5. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Ну это не простая программа ;)

    WTF?)

    вот наверное посылка подошла бы, что слать?) Подскажи)
     
  6. ShyRka_coder

    ShyRka_coder Member

    Joined:
    27 Jul 2010
    Messages:
    127
    Likes Received:
    7
    Reputations:
    5
    http://forum.antichat.ru/thread270667.html юзай .
    У меня Хелло ворлд вышло 1кб :)
     
  7. Indev

    Indev New Member

    Joined:
    23 Dec 2011
    Messages:
    59
    Likes Received:
    3
    Reputations:
    0
    Ну я думаешь о простых говорю:? ;)
     
  8. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    у меня где то был hello world чуть больше 800 байт,причем не сжат ничем.
     
  9. \\ChaOs//

    \\ChaOs// Member

    Joined:
    26 Feb 2009
    Messages:
    102
    Likes Received:
    26
    Reputations:
    5
    Это называется директивы компилятора)
    Болле подробно по ссылке ShyRka_coder'а можно почитать.
     
  10. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    Ребят всем конечно спасибо за ответы не по теме можно сказать) ну хотелось бы увидеть ответ на свой вопрос) и желательно с исходниками) точнее их частью)
     
  11. DYUMON

    DYUMON New Member

    Joined:
    15 Sep 2010
    Messages:
    68
    Likes Received:
    2
    Reputations:
    0
    у касперски видел примеры когда при правильных параметрах компилятора программа превращалась из 4 кб в 800 байт . правда у нее все лишнее отрезалось
     
  12. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    [​IMG]
    Может кто-то подскажет как перекрасить Label ( цвет, Фон )?
     
  13. alexey-m

    alexey-m Elder - Старейшина

    Joined:
    15 Jul 2009
    Messages:
    518
    Likes Received:
    100
    Reputations:
    37
    примерно так, а на какой тебе ЯП надо сам переделаешь
    Code:
    program Project1;
    
    uses
      windows, messages;
    var
      window:TWndClassEx;
      Mwindow,Static1: HWND;
      Mmsg: MSG;
    
    function WindowProc(wnd: HWND; msg: integer; wparam: WPARAM; lparam: LPARAM):LRESULT;STDCALL;
    begin
      case msg of
        WM_Destroy:
          begin
            PostQuitMessage(0);
            Result:= 0;
          end;
        WM_CTLCOLORSTATIC:
          begin
            SetBkMode(WParam, TRANSPARENT);
            Result:= GetStockObject(Null_Brush);
            if lParam = Static1 then begin
              SetTextColor(wParam, RGB(255,0,0));
            end;
          end;
        else
          Result:= DefWindowProc(wnd,msg,wparam,lparam);
      end;
    end;
    
    begin
      window.cbSize := sizeof (window);
      window.style := CS_HREDRAW or CS_VREDRAW;
      window.lpfnWndProc := @WindowProc;
      window.cbClsExtra := 0;
      window.cbWndExtra := 0;
      window.hInstance := HInstance;
      window.hIcon := LoadIcon (0,IDI_APPLICATION);
      window.hCursor := LoadCursor (0,IDC_ARROW);
      window.hbrBackground:= COLOR_WINDOW;
      window.lpszMenuName := nil;
      window.lpszClassName := 'Main_Window';
      RegisterClassEx (window);
    
      Mwindow:= CreateWindowEx(0,'Main_Window','WinAPI', WS_OVERLAPPEDWINDOW,100,100,200,200,0,0,Hinstance,nil);
      Static1:= CreateWindow('STATIC','Lable',WS_VISIBLE or WS_CHILD or WM_SETTEXT,10,10,50,23,Mwindow,0,hInstance,nil);
    
      ShowWindow(Mwindow,SW_Show);
    
      while GetMessage (Mmsg,0,0,0) do begin
        TranslateMessage (Mmsg);
        DispatchMessage (Mmsg);
      end;
    end.
    
     
  14. Kandi

    Kandi Member

    Joined:
    18 Nov 2009
    Messages:
    344
    Likes Received:
    17
    Reputations:
    0
    благодарю :)
     
  15. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,310
    Reputations:
    327
    34 байта. тока ясное дело адрес месагбокса либо хардкодить, либо вычислять (тогда еще байт плюс триста)

    use32
    format binary

    call _ebt
    msg db 'hello world!',0
    messagebox dd 0
    _ebt:
    pop eax
    xor ebx, ebx
    push ebx
    push ebx
    push eax
    push ebx
    call messagebox
     
  16. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,310
    Reputations:
    327
    чтобы понять колво шлака, которое цепляется к вашему коду, включите генерацию assembler output
     
Loading...
Similar Threads - Размер программы цвет
  1. Peja
    Replies:
    0
    Views:
    2,597