Вот решил поучить асму под Win32.
помогите разобратся что я делаю не так:
Код:
.386 .model flat,stdcall
option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD
.DATA ; Иницилизиpуемые данные
ClassName db "SimpleWinClass",0 ; Имя нашего класса окна AppName db "Наше первое окно",0 ; Имя нашего окна
.DATA? ; Hеиницилизиpуемые данные hInstance HINSTANCE ? ; Дескриптор нашей пpогpаммы CommandLine LPSTR ? .CODE ; Здесь начинается наш код start: invoke GetModuleHandle, NULL ; Взять дескриптор пpогpаммы ; Под Win32, hmodule==hinstance mov hInstance,eax mov hInstance,eax
invoke GetCommandLine ; Взять командную стpоку. Вы не обязаны ; вызывать эту функцию ЕСЛИ ваша пpогpамма не обpабатывает командную стpоку. mov CommandLine,eax invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT ; вызвать основную функцию invoke ExitProcess, eax ; Выйти из пpогpаммы. ; Возвpащаемое значение, помещаемое в eax, беpется из WinMain
WinMain proc
hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX ; создание локальных пеpеменных в стеке LOCAL msg:MSG LOCAL hwnd:HWND
Advanced member
Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
serega13, пожалуйста, почитай tutorial, а?
Там очень наглядно, есть примеры, все разжевано очень подробно. Для начала используй примеры к урокам.
А то исправлять твои грамматические ошибки ну совсем не интересно.
Что за "HISTANCE"? ... Добавлено спустя 36 секунд
Member
Статус: Не в сети Регистрация: 26.10.2004 Откуда: СПб
serega13 Не объявлены структуры wc и msg, переменная hwnd, неправильно написано hInstance, и вообще нафига было это постить Можно и самому разобраться.
Пипл скажите плиз - зачем нужна функция 4c00h. Я понимаю что это означает завершение работы модуля и передача управления операционной системе. Но что будет если этого не сделать? И почему её нужно использовать?
Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
Stalkwolf имхо - иначе выполнение программы продолжиться, но т.к. нет возврата управления, то будет выполняться МУСОР за кодом программы, что приведет к ее вылету.
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения