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

Вниз

Как написать приложение используя WinAPI   Найти похожие ветки 

 
Elysium ©   (2004-05-19 13:39) [0]

Подскажите, как написать приложение, не используя TApplication & TForm, т.е. используя только WinAPI (необходимы минимальные размеры софтины).


 
[lamer]Barmaglot ©   (2004-05-19 13:46) [1]

Держи код минимального приложения на WinAPI...


function PlainWinProc (hWnd: THandle; nMsg: UINT;
wParam, lParam: Cardinal): Cardinal; export; stdcall;
var
Rect: TRect;
begin
Result := 0;

case nMsg of
wm_Create:
begin
end;
wm_Size:
begin
end;

wm_Destroy:
PostQuitMessage (0);
else
Result := DefWindowProc (hWnd, nMsg, wParam, lParam);
end;
end;

procedure WinMain;
var
hWnd: THandle;
Msg: TMsg;
WndClassEx: TWndClassEx;
lpStartUpInfo:  TStartUpInfo;
begin
WndClassEx.cbSize := sizeOf (TWndClassEx);
WndClassEx.lpszClassName := "PlainWindow";
WndClassEx.style := cs_VRedraw or cs_HRedraw;
WndClassEx.hInstance := HInstance;
WndClassEx.lpfnWndProc := @PlainWinProc;
WndClassEx.cbClsExtra := 0;
WndClassEx.cbWndExtra := 0;
WndClassEx.hIcon := LoadIcon (hInstance,MakeIntResource ("MaINICON"));
WndClassEx.hIconSm  := LoadIcon (hInstance,MakeIntResource ("MAINICON"));
WndClassEx.hCursor := LoadCursor (0, idc_Arrow);;
WndClassEx.hbrBackground := COLOR_WINDOW;
WndClassEx.lpszMenuName := nil;

if RegisterClassEx (WndClassEx) = 0 then
  MessageBox (0, "Invalid class registration","Plain API", MB_OK)
  else
  begin
  hWnd := CreateWindowEx (WS_EX_OVERLAPPEDWINDOW and WS_THICKFRAME{WINDOWEDGE},
    WndClassEx.lpszClassName,
    "Plain API Demo",
    WS_OVERLAPPEDWINDOW,
    cw_UseDefault, 0,
    cw_UseDefault, 0,
    0,0,HInstance,nil);
  if hWnd = 0 then
    MessageBox (0, "Window not created",
      "Plain API", MB_OK)
  else
  begin
    GetStartUpInfo(lpStartUpInfo);
    ShowWindow (hWnd, lpStartUpInfo.wShowWindow);
    while GetMessage (Msg, 0, 0, 0) do
    begin
      TranslateMessage (Msg);
      DispatchMessage (Msg);
    end;
  end;
end;
end;

begin
WinMain;
end.


 
SammIk ©   (2004-05-19 14:47) [2]

http:\\logid.narod.ru\PopUp.zip


 
Digitman ©   (2004-05-19 14:57) [3]


> необходимы минимальные размеры софтины


чем это обосновано ?
судя по перечисленным в теме ОС, с ресурсами аппаратно-программных конфигураций, под управлением которых планируется использовать "софтину", у тебя д.б. все в порядке ...


 
Elysium ©   (2004-05-19 15:38) [4]

[lamer]Barmaglot спасибо за код.

Digitman - действительно с ресурсами у меня все в порядке, но использовать ее могут даже на Pentium 200. И программка всегда будет висеть в памяти, так, что желательно (я повторюсь желательно) чтобы она занимала минимум памяти. Вот.

Всем спасибо за комментарии и ответы.


 
Digitman ©   (2004-05-19 16:12) [5]


> использовать ее могут даже на Pentium 200


а это здесь причем ? речь-то не о производительности ЦП, а о ресурсах системы в целом ..


> программка всегда будет висеть в памяти


да на здоровье ! нехай висит себе !
только вот никто не заствляет тебя,  пока "программка висит", грузить  в ВАП процесса все что ни попадя .. просто разумный и осмысленный подход нужен к использованию ресурсов в каждый момент времени работы приложения


 
DVM   (2004-05-19 17:33) [6]


> что желательно (я повторюсь желательно) чтобы она занимала
> минимум памяти. Вот.

От того, что программа написана "чиста API" она меньше памяти занимать не будет. А может и больше будет. Выигрыш в скорости и в размере на диске (последнее не всегда)


 
Elysium ©   (2004-05-19 21:49) [7]

Кстати, когда я говорил о Pentium 200. Я имел ввиду и память мегов 16, и хард 1гиг, и тому подобное, т.е. слабенькая машина.

А по поводу того что она памяти меньше занить не будет тут, я буду спорить, приложение с одним окном (т.е. голое) созданное с помощью TApplication & TForm - занимает в памяти (WinXP) - 2700 кб, а созданное с помощью приведенного выше кода 1500 кб. Вроде как разница есть. И по поводу размера на диске в первом случае 364Кб, а с использованием API - 16кб. Вроде как бы разница есть в первом и во втором аспекте.


 
Игорь Шевченко ©   (2004-05-19 22:16) [8]


>  созданное с помощью TApplication & TForm - занимает в памяти
> (WinXP) - 2700 кб, а созданное с помощью приведенного выше
> кода 1500 кб


Это тебе Task Manager показывает - не верь ему. На самом деле и то и то занимают гораздо меньше места.



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

Форум: "WinAPI";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.031 c
1-1087284152
PenguinX
2004-06-15 11:22
2004.06.27
DLL и Device Context


14-1085383379
Dmitriy O.
2004-05-24 11:22
2004.06.27
Где достать компилятор Java ?


1-1086960361
DillerXX
2004-06-11 17:26
2004.06.27
Как мне считать Стринг из файла так, чтобы он заканчивался...


14-1086928186
vv_fran
2004-06-11 08:29
2004.06.27
Какие критерии ***SPAM*** в эл.почте?


1-1087139662
Илья
2004-06-13 19:14
2004.06.27
PopupMenu - OnHide





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский