Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Assembler _ Кнопочный калькулятор

Автор: Jluna 10.02.2009 23:13

На самом деле не представляю как с помощью ассемблера нарисовать кнопочный калькулятор как в самом Виндоусе... но задали такую задачку... blink.gif
Вопрос... как сделать на ассемблере его?

Автор: volvo 12.02.2009 1:58

Цитата
как с помощью ассемблера нарисовать кнопочный калькулятор как в самом Виндоусе...
В аттаче - рабочий 16-ричный калькулятор, компилируется MASM 6.14.8444. Разбирайся, как создается калькулятор... На ошибки особенно сильно не тестировал, переносилось это с одной очень старой программы на С, так что... Если начнет глючить - говори, где...


Прикрепленные файлы
Прикрепленный файл  calc.zip ( 3.15 килобайт ) Кол-во скачиваний: 468

Автор: Jluna 17.02.2009 17:56

Большое спасибо give_rose.gif
но дело в том, что тот масм который есть у меня не может открыть этот файл(
Да и когда просто просматриваю код в блокноте он описан слегка непонятно blink.gif ... можно попросить комментарии к каждой функции?

Автор: volvo 17.02.2009 18:15

Цитата
дело в том, что тот масм который есть у меня не может открыть этот файл(
А зачем MASM должен открывать его? MASM должен компилировать. А смотреть файл можешь любым текст. редактором.

Цитата
Да и когда просто просматриваю код в блокноте он описан слегка непонятно
Что именно непонятно? Ты занималась вообще когда-нибудь написанием программ под Windows на Ассемблере? Вообще под Windows писала? Что такое сообщение Windows, функция окна, диалоговое окно, функция диалогового окна, ... знаешь?

Автор: Jluna 17.02.2009 20:24

На самом деле знаю только азы программирования на ассемблере...
в коде не привычно то, что стоит "." перед функциями... есть подозрение что программа написана используя те функции которые еще не изучала, но есть учебник и я разберусь...НО в этой программе используются библиотеки... у меня их нету...

include D:\masm32\include\windows.inc
include D:\masm32\include\user32.inc
include D:\masm32\include\kernel32.inc
include D:\masm32\include\shell32.inc
include D:\masm32\include\comctl32.inc
include D:\masm32\macros\macros.asm

includelib D:\masm32\lib\user32.lib
includelib D:\masm32\lib\kernel32.lib
includelib D:\masm32\lib\shell32.lib
includelib D:\masm32\lib\gdi32.lib
includelib D:\masm32\lib\comctl32.lib

и что означает знак "==" ?

.elseif (nOperation == FUNCTION_POWER)

Автор: volvo 17.02.2009 20:44

Цитата
в этой программе используются библиотеки... у меня их нету...
Что значит "нету"? У тебя что, в папке masm32 нет поддиректории \lib и \include? Возможно, у тебя сам ассемблер установлен в другом месте (не другом диске), поменяй пути тогда...

Если все же нет - значит, у тебя неправильный мёд MASM, качай с офсайта правильный: http://www.masm32.com/masmdl.htm , отключайся от интернета, отключай антивирус, и устанавливай ассемблер (иногда из-за ложной тревоги антивирус не дает установщику отработать корректно, и некоторые файлы после этого отсутствуют; поэтому на время установки рекомендуется антивирус отключать)...

Цитата
в коде не привычно то, что стоит "." перед функциями...
Это ты про .IF .ELSEIF .ENDIF? Так это не функции, это директивы. Без них-то как ты хочешь программировать? Все вручную что-ли через cmp? smile.gif

Цитата
и что означает знак "==" ?
Означает равенство... Как в С/С++...

Автор: Jluna 17.02.2009 20:55

Да... чувствую я себя полным ламером)) но большое спасибо за обьяснения...
как оказалось...да...ссемблер установлен не там...спасибо за ссылку...щас все установлю...
точка смущает...эм...ну потомучто до этого лабораторные на ассемблере мы писали без них...без точек я имею ввиду)) дериктивы все оставались теже...
В общем спасибо за науку... щас попробую запустить программу) give_rose.gif

Автор: Jluna 17.02.2009 22:21

хм...
программа выдает ошибки с непонятным текстом...
Такое ощущение что она ненаходит всеже какието библиотеки...
Вопрос...а у вас она работает ...эта программа... потомучто она у меня не компилируется)

Автор: Fanat 17.02.2009 23:15

Цитата(Jluna @ 17.02.2009 22:21) *

хм...
программа выдает ошибки с непонятным текстом...
Такое ощущение что она ненаходит всеже какието библиотеки...
Вопрос...а у вас она работает ...эта программа... потомучто она у меня не компилируется)



Сорри, что влезаю. Jluna, у меня работает (я компилировал ткнув на батник). smile.gif

Volvo, очень удивило количество кода.

Автор: volvo 18.02.2009 1:43

Цитата
очень удивило количество кода.
Чего именно тебя удивило? Это ж Windows-приложение все-таки, обработки событий, вызовы функций API, все остальные необходимые вещи... Если б я не воспользовался блоком switch/endsw, ты бы еще больше удивился smile.gif Попробуй написать это же самое на чистом WinAPI на Сях или Дельфи, ты увидишь, что кода будет практически столько же...

Цитата
Вопрос...а у вас она работает ...эта программа...
Я неработающие программы не выкладываю...

Автор: Lapp 18.02.2009 10:43

М
Jluna, пожалуйста, прочти Правила Форума (ссылка вверху страницы). Особенно обрати внимание на пп. 1.13 и 1.14.

PS
Аватар твой не очень сильно нпрягает, можешь оставить (с условием убрать сразу при возражениях других администраторов/модераторов). Картинку из подписи убрать срочно.


Автор: Fanat 18.02.2009 15:48

Цитата(volvo @ 18.02.2009 1:43) *

Попробуй написать это же самое на чистом WinAPI на Сях или Дельфи, ты увидишь, что кода будет практически столько же...


Вот я именно об этом и подумал. Кода было бы столько же, если не больше. smile.gif

Автор: Jluna 22.02.2009 21:57

Кода на делфи, как и на С столькоже)) +- 2-3 строчки...))
а вот с ассемблером у меня видно что то не то...наверно неправильно установила ассемблер..т.к ошибку показывает даже при функции простого вывода текста... буду разбираться...

Автор: Гость 21.12.2009 23:58

Цитата(volvo @ 12.02.2009 1:58) *

В аттаче - рабочий 16-ричный калькулятор, компилируется MASM 6.14.8444. Разбирайся, как создается калькулятор... На ошибки особенно сильно не тестировал, переносилось это с одной очень старой программы на С, так что... Если начнет глючить - говори, где...


Спасибо за калькулятор, подскажы пож как с файлом calc.rc поступать.) куда ево девать шоб он подключился к калькулятору

Автор: volvo 22.12.2009 0:34

Ничего никуда не надо девать... Распаковываешь архив, и запускаешь bat-файл. Все, больше ничего делать не надо, компилятор ресурсов сам разберется, что делать с RC-файлом...