![]() |
|
![]() ![]() ![]() |
|
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
При создание программы на masm32 под windows xp,основанную на диалогах, ассемблируется и линкуется все без ошибок, а когда запускаешь -- окно не отображается, даже в примерах из книжек не показываются диалоги.Помогите.Заранее спасибо[email protected]
|
|||
|
||||
Damarus |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 671 Регистрация: 6.5.2006 Репутация: нет Всего: 29 |
zxcc, код в студию.
|
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
.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 DlgProc proto :DWORD,:DWORD,:DWORD,:DWORD .data DIAL db "DIAL1",0 .data? hInstance HINSTANCE ? .code start: invoke GetModuleHandle, NULL mov hInstance,eax invoke DialogBoxParam,hInstance,ADDR DIAL,0,ADDR DlgProc, 0 invoke ExitProcess,eax DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM .IF uMsg==WM_CLOSE invoke EndDialog,hWnd,NULL .ELSE invoke DefWindowProc,hWnd,uMsg,wParam,lParam .ENDIF xor eax,eax ret DlgProc endp end start Файл ресурсов: #define WS_SYSMENU 0x00080000L #define WS_MINIMIZEBOX 0x00020000L #define WS_MAXIMIZEBOX 0x00010000L DIAL1 DIALOG 0, 0, 240, 120 STYLE WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX|WS_VISIBLE CAPTION "Пример диалогового окна" CLASS "DLGCLASS" FONT 8, "Arial" { } |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
zxcc, неужели так трудно взять отладчик?
следовательно: #define WS_SYSMENU 0x00080000L #define WS_MINIMIZEBOX 0x00020000L #define WS_MAXIMIZEBOX 0x00010000L DIAL1 DIALOG 0, 0, 240, 120 STYLE WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX|WS_VISIBLE CAPTION "Пример диалогового окна" CLASS "DLGCLASS" FONT 8, "Arial" { } |
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Спасибо большое.Но у меня всё равно не получается.Та же проблема.Наверно я что то не так делаю.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
вот
Добавлено @ 16:01 функцию DefWindowProc убери - из-за неё диалог глючит Присоединённый файл ( Кол-во скачиваний: 10 ) ![]() |
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Спасибо.Запускаю test.exe всё работает,но если пробую компилировать ,то после компиляции опять окно не отображается.Можете объяснить как пользоваться masm32 я чайник в этом деле.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
1) компиляция test.asm
ml /c /coff /IC:\MASM32\INCLUDE test.asm или просто ml /c /coff test.asm 2) копмиляция ресурсов rc res.rc 3) создание exe link /SUBSYSTEM:WINDOWS /LIBPATH:C:\masm32\lib test.obj res.res или просто link /SUBSYSTEM:WINDOWS test.obj res.res Подробнее - см. здесь: http://search.msdn.microsoft.com/search/De...eid=0&tab=0 (в поиске) |
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Я пользуюсь qeditior.exe из masm32.Сохраняю файл в разрешение .asm ,ресурсы .rc А через ком.строку не знаю как.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
пользуйся блокнотом.
для облегчения труда созд. bat-файлы |
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Спасибо.А можно подробнее.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
подробнее в аттаче было.
|
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
там на английском
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
![]() |
|||
|
||||
anwe |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Тут знать нечего, просто пишешь там, то что 586 указал. Но если пользуешься qeditior - пользуйся. Ошибка не в этом. Ошибка в файле ресурсов. Ты прописал значения для STYLE WS_SYSMENU, WS_MINIMIZEBOX и WS_MAXIMIZEBOX, а для WS_VISIBLE - нет. Добавь: #define WS_VISIBLE 0x10000000L 586 писал:
Это, как раз не обязательно, из-за нее не глючит, хотя и не нужна в процедуре. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |