![]() |
eXeL@B —› Программирование —› окна своими руками (ERROR_INVALID_WINDOW_HANDLE) |
Посл.ответ | Сообщение |
|
Создано: 07 октября 2009 02:43 · Поправил: Yuki Makoto · Личное сообщение · #1 Перед огромным желанием тврорить чудеса на асме и писать оконные интерфейсы (в том числе оконные) мало кто устоит xD неплохо бы разобраться как же оно там все фунциклирует изнутри.. Я приведу простейший пример оконного приложения с кнопкой и полем редактирования на асме.. Проблема: функция CreateWindowExA@48 из user32.dll возвращает нулевой результат, а должна, как вы все знаете, возвращать хэндл созданного окна. Может кто-нибудь подскажет в чем здесь дело? С какими параметрами накосячил? стандартные includ'ы не подключаю намеренно. Code:
![]() ![]() |
|
Создано: 07 октября 2009 06:22 · Личное сообщение · #2 Yuki Makoto Так проги на ассемблере никто не пишет (если я не ошибаюсь). Возможно вы использовали какой-нибудь рипер (типа TMG Ripper Studio). Пример нормально написаной проги: canterwood.online.fr/shared/tools/MASM32.keygen.template.v1.incl.example-Canterwood.zip Надо использовать декларированные структуры не с 02.inc, с windows.inc. Структуры MSGSTRUC и WNDSTRUC замените на MSG и WNDCLASSEX. Ну и соответсвенно имена переменных в нем замените. Пример: wasm.ru/pub/1/files/tut03.zip ![]() |
|
Создано: 07 октября 2009 10:46 · Личное сообщение · #3 |
|
Создано: 07 октября 2009 14:43 · Личное сообщение · #4 Bonez92 пишет: Так проги на ассемблере никто не пишет (если я не ошибаюсь). Возможно вы использовали какой-нибудь рипер (типа TMG Ripper Studio).Пример нормально написаной проги: --> Link <-- Спасибо за примеры ![]() ![]() ![]() ![]() |
|
Создано: 07 октября 2009 14:53 · Личное сообщение · #5 |
|
Создано: 07 октября 2009 15:38 · Личное сообщение · #6 |
|
Создано: 07 октября 2009 20:02 · Личное сообщение · #7 zeppe1in Мне это сложно объяснить.. боюсь что меня не поймут xD Ну вот гляньте вот этот пример: (он еще проще предыдущего. окно без элементов управления. все отлично работает) Code:
![]() |
|
Создано: 08 октября 2009 12:55 · Личное сообщение · #8 Похоже на примеры из книги Пирогова ![]() Code:
ИМХО лучше так проги не писать ![]() ![]() |
|
Создано: 08 октября 2009 13:08 · Личное сообщение · #9 |
|
Создано: 08 октября 2009 14:47 · Поправил: Vitek · Личное сообщение · #10 |
|
Создано: 08 октября 2009 16:39 · Личное сообщение · #11 |
|
Создано: 08 октября 2009 18:14 · Личное сообщение · #12 |
|
Создано: 08 октября 2009 20:25 · Поправил: Yuki Makoto · Личное сообщение · #13 |
|
Создано: 08 октября 2009 20:26 · Поправил: AlexZ · Личное сообщение · #14 cppasm Ну, если хочется посмотреть как всё выглядит изнутри, то обычно начинаешь заучивать биты флагов, условия переходов, смещения в байтах, и т.п. и чувствуешь absolute power. Потом это несколько позда...бывает и хочется скоротать время, обойтись инвоком или макросредством, чем десять раз переписывать одно и то же. Хотя МАСМ - он и есть Асм + Макросредства. А значит, зачем-то это нужно. Зачем для себя - я ответил, а как и зачем это в реальных проектах - не знаю, но в реале точно не попишешь по принципу "хочу так и на том потому что хоцца." ----- Я медленно снимаю с неё UPX... *FF_User* ![]() |
|
Создано: 08 октября 2009 21:26 · Личное сообщение · #15 |
![]() |
eXeL@B —› Программирование —› окна своими руками (ERROR_INVALID_WINDOW_HANDLE) |