Форум: "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