Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2007, 22:07   #1
BOPOHA
 
Регистрация: 25.12.2007
Сообщений: 3
По умолчанию Как уменьшить мое первое окно

Интересно а можно уменьшить мое первое окно из масма32 2 туториала исцелиона win.asm в микроwinasm эту задачу начал с исследования win.exe в турбодебугере td32 в результате потерялась целая процедура с виндестроем куда она делась не пойму дебугер вторую процедуру не видет вовсе как будто она в стековой части писана и не известно какая процедура ее вызывает вообщем олная тайна простого окна а хочется по кирпичику разобрать этот пример чтоб все понять как и что,

Последний раз редактировалось rpy3uH; 27.12.2007 в 19:59.
BOPOHA вне форума Ответить с цитированием
Старый 27.12.2007, 20:00   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

используй OllyDebug - самый лучший user mode отладчик!
rpy3uH вне форума Ответить с цитированием
Старый 27.12.2007, 21:15   #3
BOPOHA
 
Регистрация: 25.12.2007
Сообщений: 3
По умолчанию

Нашел эту процедуру повнимательнее надо быть, наверно или в этой загрузке дебугер её захотел показать, только не знаю как ее надо эту прогу переписать чтоб она совершенно компактной получилась, так лучше для масма32

Последний раз редактировалось rpy3uH; 28.12.2007 в 18:15.
BOPOHA вне форума Ответить с цитированием
Старый 28.12.2007, 18:16   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

телепаты в отпуске: причём тут MASM32, причём тут дебаггер, и что за вторая процедура?
rpy3uH вне форума Ответить с цитированием
Старый 28.12.2007, 22:57   #5
BOPOHA
 
Регистрация: 25.12.2007
Сообщений: 3
По умолчанию

Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

.data
ClassName db "SimpleWinClass",0
AppName db "Computer Supermegacomp",0

.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?

.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax

invoke GetCommandLine
mov CommandLine,eax

invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push hInstance
pop wc.hInstance
mov wc.hbrBackground,COLOR_WINDOW+1
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,NULL,IDI_APPLICATION
mov wc.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax

invoke RegisterClassEx, addr wc
INVOKE CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\
hInst,NULL
mov hwnd,eax

invoke ShowWindow,hwnd,SW_SHOWNORMAL
invoke UpdateWindow, hwnd

.WHILE TRUE
invoke GetMessage, ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
.ENDW

mov eax,msg.wParam
ret
WinMain endp

WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM
nop
.IF uMsg==WM_DESTROY
invoke PostQuitMessage,NULL
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam		
.ENDIF
;xor eax,eax
nop
nop
ret
WndProc endp

end start
программа состоит из двух ПРОЦЕССОВ
каждый из которых исполняется паралельно другому
в этом ее отличие от hello world под досом

Первый процесс задается в loadcursor с офсетом второй процедуры wndproc

Второй процесс это цикл сообщений окна

Сложновато а нельзя ли сбацать как в первом примере исцелиона
Тоже в один процесс или двухпроцессность свойство каждого большого окна

Наверно в первом процессе выход из окна по клавише эскейп можно сделать или любой клавише

Можно без выгрузки из памяти обойтись кагда окно закрывается только это память засорять будет

Так программа будет короче или еще каканибудь

Будучи доспрограммистом программировать под окном наверно будет нелегко изза длинных винапи названий функций переменных
от модера: ещё раз оформишь пост одними только большими буквами, получишь нарушение

Последний раз редактировалось rpy3uH; 29.12.2007 в 09:11.
BOPOHA вне форума Ответить с цитированием
Старый 29.12.2007, 09:13   #6
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

извиняюсь конечно: что это за бред? вообще, ты в адеквате?
опиши нормально проблему, иначе удалю тему.
rpy3uH вне форума Ответить с цитированием
Старый 29.12.2007, 17:57   #7
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию

Что-то мне кажется, что под словом "процесс" Вы понимаете не то, что подразумевает Windows. В данном случае нет не то, что второго процесса, а даже одним потоком всё ограничено.

Оконная процедура выполняется в том же процессе, где и остальная программа. Её отличие только в том, что её вызывает не Ваша программа, а сама Windows.

Вы, наверное, недавно с DOS на Windows переехали? Можете вопросы более коротко формулировать?
#define QUESTION bb || !bb
Vedrus вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas. Первое Начало (#001) Albert2008 Компоненты Delphi 2 19.07.2008 21:45
Как из Даты взять первое число? valerij Microsoft Office Excel 15 17.06.2008 13:39
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28
ООП мое первое начало cross Общие вопросы Delphi 1 18.03.2007 21:58