Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с masm32, не отображается диалоговое окно 
:(
    Опции темы
zxcc
Дата 11.10.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



При создание программы на masm32 под windows xp,основанную на диалогах, ассемблируется и линкуется все без ошибок, а когда запускаешь -- окно не отображается, даже в примерах из книжек не показываются диалоги.Помогите.Заранее спасибо[email protected]

PM MAIL   Вверх
Damarus
Дата 11.10.2006, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 671
Регистрация: 6.5.2006

Репутация: нет
Всего: 29



zxcc, код в студию.
PM MAIL ICQ Jabber   Вверх
zxcc
Дата 14.10.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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"
{
}

PM MAIL   Вверх
586
Дата 14.10.2006, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



zxcc, неужели так трудно взять отладчик?
Код
.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 dd ?

.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke DialogBoxParam, eax, offset DIAL, 0, offset DlgProc, 0
invoke GetLastError
int 3   ; eax=0000057f - Не удаётся найти класс окна
ret


DlgProc proc hWnd, uMsg, wParam, lParam:DWORD
  
 .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"
{
}
PM   Вверх
zxcc
Дата 14.10.2006, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



Спасибо  большое.Но у меня всё равно не получается.Та же проблема.Наверно я что то не так делаю.
PM MAIL   Вверх
586
Дата 14.10.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



вот

Добавлено @ 16:01 
функцию DefWindowProc убери - из-за неё диалог глючит

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  test.rar 1,64 Kb
PM   Вверх
zxcc
Дата 14.10.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



Спасибо.Запускаю test.exe всё работает,но если пробую компилировать ,то после компиляции опять окно не отображается.Можете объяснить как пользоваться masm32  я чайник в этом деле.
PM MAIL   Вверх
586
Дата 14.10.2006, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 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 (в поиске)
PM   Вверх
zxcc
Дата 14.10.2006, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



Я пользуюсь qeditior.exe из masm32.Сохраняю файл в разрешение .asm ,ресурсы .rc А через ком.строку не знаю как.
PM MAIL   Вверх
586
Дата 14.10.2006, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



пользуйся блокнотом.
для облегчения труда созд. bat-файлы
PM   Вверх
zxcc
Дата 14.10.2006, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



Спасибо.А можно  подробнее.
PM MAIL   Вверх
586
Дата 14.10.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



подробнее в аттаче было.
PM   Вверх
zxcc
Дата 14.10.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 11.10.2006

Репутация: нет
Всего: нет



там на английском
PM MAIL   Вверх
586
Дата 14.10.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: нет
Всего: 146



 smile всё что надо я написал. у меня всё работает.
PM   Вверх
anwe
Дата 14.10.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: нет
Всего: 23



Цитата

Я пользуюсь qeditior.exe из masm32.Сохраняю файл в разрешение .asm ,ресурсы .rc А через ком.строку не знаю как.

Тут знать нечего, просто пишешь там, то что 586 указал.
Но если пользуешься qeditior - пользуйся. Ошибка не в этом.
Ошибка в файле ресурсов. Ты прописал значения для STYLE WS_SYSMENU, WS_MINIMIZEBOX и WS_MAXIMIZEBOX, а для WS_VISIBLE - нет.
Добавь:

#define WS_VISIBLE          0x10000000L

586 писал:
Цитата

функцию DefWindowProc убери - из-за неё диалог глючит 

Это, как раз не обязательно, из-за нее не глючит, хотя и не нужна в процедуре.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.