![]() |
eXeL@B —› Вопросы новичков —› С чего начать? |
Посл.ответ | Сообщение |
|
Создано: 27 августа 2006 17:04 · Личное сообщение · #1 |
|
Создано: 27 августа 2006 21:38 · Личное сообщение · #2 |
|
Создано: 27 августа 2006 23:07 · Личное сообщение · #3 Lukar1, только тебе придётся параллельно изучать Win32 API и PE-формат. Когда патчер сделаешь, попробуй какую-нибудь штуковину и интересной логикой сотворить, например консольный скринсейвер "Матрица". А выглядеть он может так (этот на C++ сделали): ![]() ----- Всем привет, я вернулся ![]() |
|
Создано: 29 августа 2006 15:51 · Личное сообщение · #4 |
|
Создано: 29 августа 2006 16:14 · Личное сообщение · #5 |
|
Создано: 29 августа 2006 17:34 · Личное сообщение · #6 У спасибо . А я думал по другому. Ну раз так дело пошло я щас как не пытался не мог понять этого: invoke GetModuleHandle,0 mov [hinstance],eax invoke LoadIcon,0,IDI_APPLICATION mov [wc.hIcon],eax invoke LoadCursor,0,IDC_ARROW mov [wc.hCursor],eax mov [wc.style],0 mov [wc.lpfnWndProc],WindowProc mov [wc.cbClsExtra],0 mov [wc.cbWndExtra],0 mov eax,[hinstance] mov [wc.hInstance],eax mov [wc.hbrBackground],COLOR_BTNFACE+1 mov [wc.lpszMenuName],0 mov [wc.lpszClassName],_class invoke RegisterClass,wc конец. Вот вопрос: invoke GetModuleHandle,0 mov [hinstance],eax Это берем хэндл нашей программы и сохраняем переменную [hinstance] в eax я ведь правильно думаю? И еще одна просьба. Если можно хотябы кратчайшее пояснение че она делает. Я дак понял это связано с интерфейсом. invoke LoadIcon,0,IDI_APPLICATION-загружаем поименованый ресурс пиктограммы. бля бля бля invoke LoadCursor,0,IDC_ARROW-загружаем поименованый ресурс курсора. Может быть мой предроложение не правильны. Но не судите строго . Сижу с 2 справочниками и разбираю как работает. Спасибо заранее благодарен. ![]() |
|
Создано: 29 августа 2006 22:41 · Личное сообщение · #7 Lukar1 пишет: Вот вопрос: invoke GetModuleHandle,0 mov [hinstance],eax Это берем хэндл нашей программы и сохраняем переменную [hinstance] в eax я ведь правильно думаю? Наоборот.Функция GetModuleHandle возвращает хендл процесса в еах,а потом здесь mov [hinstance],eax это значение переносится из регистра еах в переменную [hinstance]. Lukar1 пишет: У спасибо . А я думал по другому. Ну раз так дело пошло я щас как не пытался не мог понять этого: invoke GetModuleHandle,0 mov [hinstance],eax invoke LoadIcon,0,IDI_APPLICATION mov [wc.hIcon],eax invoke LoadCursor,0,IDC_ARROW mov [wc.hCursor],eax mov [wc.style],0 mov [wc.lpfnWndProc],WindowProc mov [wc.cbClsExtra],0 mov [wc.cbWndExtra],0 mov eax,[hinstance] mov [wc.hInstance],eax mov [wc.hbrBackground],COLOR_BTNFACE+1 mov [wc.lpszMenuName],0 mov [wc.lpszClassName],_class invoke RegisterClass,wc Попробую обьяснить..Сначала как и в начале любой программы определяем хендл нашего процесса..Потом подгружаем ресурсы - иконку и курсор...Дальше идет регистрация класа окна через function RegisterClass(var WndClass: TWndClass): Bool; Так вот все эти mov формируют клас окна(который является структурой wc), тоесть определяют его свойства - стиль,процедуру обработчика,курсор,иконку,фон и т.д. ![]() |
|
Создано: 29 августа 2006 23:29 · Личное сообщение · #8 |
|
Создано: 08 сентября 2006 04:12 · Личное сообщение · #9 |
![]() |
eXeL@B —› Вопросы новичков —› С чего начать? |