![]() |
|
![]() ![]() ![]() |
|
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 писал:
Это, как раз не обязательно, из-за нее не глючит, хотя и не нужна в процедуре. |
||||
|
|||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Добавил,но ничего не получилось.
При сборке выдает Microsoft ® Windows ® Resource Compiler, Version 5.00.1823.1 - Build 1823 Copyright © Microsoft Corp. 1985-1998. All rights reserved. Using codepage 1251 as default Creating rsrc.RES RC: RCPP -CP 1251 -f D:\masm32\RCa03588 -g D:\masm32\RDa03588 -DRC_INVOKED -D_WI N32 -pc\:/ -E -I. -I . RC : fatal error RC1110 : could not open rsrc.rc Microsoft ® Windows Resource To Object Converter Version 5.00.1736.1 Copyright © Microsoft Corp. 1992-1997. All rights reserved. CVTRES : fatal error CVT1101: cannot open rsrc.res for reading |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
||||
|
||||
anwe |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
586, раз уж на то пошло, то надо сказать (написать), что в модальных диалоговых окнах, как это, вообще не используется DefWindowProc. Там если функция возвращает TRUE, значит сообщение сделано для диалогового окна и оно обрабатывается менеджером диалоговых сообщений и FALSE - в противном случае, поэтому правильно было бы написать так:
И тогда все работает правильно. zxcc - не знаю что и сказать. Ради этого написал и скомпилировал у себя твое творение - все же идет!!! При сборке выдает все тоже кроме
Попоробуй вместо описания значений стилей прописать ссылку на файл resource.h. Если ты используешь пакет masm32, он должен быть у тебя. |
||||
|
|||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
А есть ли другой способ создания ресурсов.
|
|||
|
||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Ты открой через то же qeditor файл bres.bat и сравни то, что там написано с тем, что указал 586: какой там должен быть прописан код.
А по поводу другого способа - можешь использовать специальные редакторы ресурсов. Это сообщение отредактировал(а) anwe - 15.10.2006, 16:48 |
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
||||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
А где можно узнать,как пользоваться Microsoft Visual C++6.
|
|||
|
||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: нет Всего: 146 |
а там нет ничего сложного. Я без помощи научился.
zxcc, у тебя вообще есть опыт программирования в других средах? Мне кажется, асм тебе ещё рановат. С++ хоть знаешь? Не знаешь, как пользоваться, возми другой редактор. Поищи в Интернете. Это сообщение отредактировал(а) 586 - 15.10.2006, 21:14 |
|||
|
||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Не, ну это зря! Асм не сложнее других. Я им пользуюсь, а С++ почти не знаю. Могу только догадываться о том, какая логика прописана в том или ином синтаксисе, зная ее написание в асме. |
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Нет я только учусь.И С++ тоже пытаюсь осилить но больше ассемблер нравиться.В С++ с типами возвр.значений заморочек много.А вот что за проблема с компилятором не могу понять.( А может во мне).Большое Всем спасибо за помощь.
|
|||
|
||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
Не, ты все же посмотри bres.bat.
Вот мой:
|
|||
|
||||
zxcc |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 11.10.2006 Репутация: нет Всего: нет |
Спасибо anwe,что не забываешь.Посмотрел свой bres.bat.Всё тоже самое как и у тебя.На одном из форумов у одного парня была такая же проблема как и у меня.И он её как то решил. Но как не говорит. |
|||
|
||||
tnt17 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.10.2006 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Правила форума "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. |