Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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

Ответ
 
Опции темы
Старый 10.06.2010, 22:17   #21
zverozavr
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 22
Репутация: 18
По умолчанию

после того как меняю
Код:

invoke MoveToEx,hDC,50,60,pCOORD
        invoke LineTo,hDC,40,50
        invoke LineTo,hDC,40,40
        invoke LineTo,hDC,50,30
        invoke LineTo,hDC,60,40
        invoke LineTo,hDC,60,50
        invoke LineTo,hDC,50,60

        invoke MoveToEx,hDC,10,10,pCOORD
        invoke LineTo,hDC,10,80
        invoke LineTo,hDC,80,80

на
Код:

POINT poly[4];
poly[0].x =10;
poly[0].y =30;
poly[1].x =30;
poly[1].y =30;
poly[2].x =30;
poly[2].y =60;
poly[3].x=10;
poly[3].y=30;
Polyline(hdc, poly , 4); рисуем четырехугольник

получаю
Код:

D:\stub\controls.asm(111) : error A2179: structure improperly initialized
D:\stub\controls.asm(111) : error A2008: syntax error : in structure
D:\stub\controls.asm(112) : error A2008: syntax error : [
D:\stub\controls.asm(113) : error A2008: syntax error : [
D:\stub\controls.asm(114) : error A2008: syntax error : [
D:\stub\controls.asm(115) : error A2008: syntax error : [
D:\stub\controls.asm(116) : error A2008: syntax error : [
D:\stub\controls.asm(117) : error A2008: syntax error : [
D:\stub\controls.asm(118) : error A2008: syntax error : [
D:\stub\controls.asm(119) : error A2008: syntax error : [
D:\stub\controls.asm(120) : error A2008: syntax error : Polyline

я чтото делаю не так?
zverozavr вне форума   Ответить с цитированием
Старый 10.06.2010, 22:45   #22
Ulex
Непрофессионал
Профессионал
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Адрес: город Н-ск.
Сообщений: 1,411
Репутация: 1100
По умолчанию

Конечно не так. Mikl___ вам для Delphi код привёл.
А у вас АСМ. Синтаксис учитывайте.
__________________
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума   Ответить с цитированием
Старый 10.06.2010, 22:55   #23
zverozavr
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 22
Репутация: 18
По умолчанию

да вот и я смотрю что чтото не то ... лазию по справочникам и не чего путного найти не могу
тоесть как я нарисовал это оптимальный вариант для масма?
Ulex, можешь дать ссылку на какойнить справочник по синтаксису под асм, чтобы лишний раз не флудить на форуме а задавать уже конкретные вопросы если что не получается ... просто у меня тоже трабла с функциями которые ты написал ... в твоём исходнике я их нашёл а вот что вырезать а что нет я не пойму
zverozavr вне форума   Ответить с цитированием
Старый 10.06.2010, 23:31   #24
Ulex
Непрофессионал
Профессионал
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Адрес: город Н-ск.
Сообщений: 1,411
Репутация: 1100
По умолчанию

Цитата:
тоесть как я нарисовал это оптимальный вариант для масма?
Нет, не оптимальный. Оптимальный тебе Mikl___ посоветовал.
Пойми суть простую - на масм-е или на Delphi тут разница будет только в синтаксисе. Так как эта функция Polyline она не Делфовая, она Виндовая (WinApi). И код её находится в одной из системных библиотек. А ты её просто вызываешь. Какая программа её вызывает (на Delphi, на С++, на ASM), ей всё равно. А вот для тебя, как для программиста, разница заключается в синтаксисе языка, который ты используешь.
Вызвать функцию WinApi на делфи будет так:
Код:

Polyline(hdc, poly , 4); рисуем четырехугольник

Тоже самое на MASM-е с использованием макроса invoke:
Код:

invoke Polyline, [hdc], addr [poly], 4 ;рисуем четырехугольник

Справка, которая всегда под боком в *\masm32\HELP - вот здесь их кучка.
Если будешь писать под WIN, обязательно достань справочник по WinApi функциям, или милости просим в MSDN.
__________________
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума   Ответить с цитированием
Старый 11.06.2010, 02:10   #25
zverozavr
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 22
Репутация: 18
По умолчанию

как пел Высоцкий: "а если дуб как дерево, родишься баобабом и будешь баобабом тищу лет, пока помрешь"
Ulex, спасибо тебе большое за помощь но чую это бесполезно или лыжи не едут или всёже я не допонял ....
пролазил все WinAPI справочники, был на МСДНе ... функции почитал, а вот как их использовать на Масме не понял
Код:

invoke Polyline, [hdc], addr [poly], 4

я так понял что ещё чтото создавать надо чтобы на
Код:

addr [poly]

реагировал, а вот что я не догоню и всё
пробывал делать как Mikl___ написал, только через invoke - 0 имоций ...

Сегодня уже сдавать работе в 2д дальше будет хуже ... через неделю 3д 2 лабы, через 3 недели 3д моделирование семестровая ... а препод даже элементарные вещи сама не знает ... говорит "вот если бы я у вас вела 1с, то смоглабы помоч, а так - делайте сами я посмотрю как у вас получится"
zverozavr вне форума   Ответить с цитированием
Старый 11.06.2010, 02:23   #26
Ulex
Непрофессионал
Профессионал
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Адрес: город Н-ск.
Сообщений: 1,411
Репутация: 1100
По умолчанию

Ну а чего непонятного то именно:
Цитата:
The Polyline function draws a series of line segments by connecting the points in the specified array.
BOOL Polyline(
HDC hdc, // handle of device context
CONST POINT *lppt, // address of array containing endpoints
int cPoints // number of points in the array
);

Parameters
hdc
Identifies a device context.
lppt
Points to an array of POINT structures. Each structure in the array identifies a point in logical space.
cPoints
Specifies the number of points in the array. This number must be greater than or equal to two.
Второй параметр - адрес массива с точками, т.е. массива, содержащего структуры POINT. Вот их и надо было определить.

Деджи архивчик, накидал по быстрому:
Вложения
Тип файла: rar Pentagon.rar (5.5 Кб, 23 просмотров)
__________________
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума   Ответить с цитированием
Старый 11.06.2010, 02:45   #27
zverozavr
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 22
Репутация: 18
По умолчанию

Спасибо тебя огромнейшее!!!
теперь хоть можно,почти с чистой душой, ложиться спать завтра буду разбираться что да как и что доделать
П.С. ты чем его компилил? О.О даже тот батник что в архиве не компилирует ... мож дело в том что у меня 10й масм стоит?

Код:

 Assembling: D:\123\Pentagon\pentagon.asm
D:\123\Pentagon\GlobUninitData.asm(3) : error A2008: syntax error : msg
D:\123\Pentagon\GlobUninitData.asm(4) : error A2008: syntax error : wc
D:\123\Pentagon\pentagon.asm(73) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(73) : error A2114: INVOKE argument type mismatch :
argument : 1
D:\123\Pentagon\pentagon.asm(85) : error A2006: undefined symbol : msg
D:\123\Pentagon\pentagon.asm(85) : error A2114: INVOKE argument type mismatch :
argument : 1
D:\123\Pentagon\pentagon.asm(88) : error A2006: undefined symbol : msg
D:\123\Pentagon\pentagon.asm(88) : error A2114: INVOKE argument type mismatch :
argument : 1
D:\123\Pentagon\pentagon.asm(89) : error A2006: undefined symbol : msg
D:\123\Pentagon\pentagon.asm(89) : error A2114: INVOKE argument type mismatch :
argument : 1
D:\123\Pentagon\pentagon.asm(92) : error A2006: undefined symbol : msg
D:\123\Pentagon\pentagon.asm(92) : error A2114: INVOKE argument type mismatch :
argument : 1
D:\123\Pentagon\pentagon.asm(52) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(53) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(54) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(55) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(59) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(64) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(67) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(69) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(71) : error A2006: undefined symbol : wc
D:\123\Pentagon\pentagon.asm(72) : error A2006: undefined symbol : wc
_
Assembly Error


Последний раз редактировалось Stilet; 11.06.2010 в 13:10.
zverozavr вне форума   Ответить с цитированием
Старый 11.06.2010, 22:20   #28
Ulex
Непрофессионал
Профессионал
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Адрес: город Н-ск.
Сообщений: 1,411
Репутация: 1100
По умолчанию

Ну тык это, смотрите свой windows.inc.
Структуры
Код:

msg	MSGSTRUCT <?>
wc	WNDCLASS2 <?>

должны быть описаны там.
__________________
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума   Ответить с цитированием
Старый 12.06.2010, 00:21   #29
zverozavr
Пользователь
 
Регистрация: 22.03.2010
Сообщений: 22
Репутация: 18
По умолчанию

Код:

MONMSGSTRUCT STRUCT
  cb        DWORD      ?
  hwndTo    DWORD      ?
  dwTime    DWORD      ?
  htask     DWORD      ?
  wMsg      DWORD      ?
  wParam    DWORD      ?
  lParam    DWORD      ?
  dmhd      DDEML_MSG_HOOK_DATA <>
MONMSGSTRUCT ENDS

Код:

WNDCLASSEX STRUCT
  cbSize            DWORD      ?
  style             DWORD      ?
  lpfnWndProc       DWORD      ?
  cbClsExtra        DWORD      ?
  cbWndExtra        DWORD      ?
  hInstance         DWORD      ?
  hIcon             DWORD      ?
  hCursor           DWORD      ?
  hbrBackground     DWORD      ?
  lpszMenuName      DWORD      ?
  lpszClassName     DWORD      ?
  hIconSm           DWORD      ?
WNDCLASSEX ENDS

WNDCLASSA STRUCT
  style             DWORD      ?
  lpfnWndProc       DWORD      ?
  cbClsExtra        DWORD      ?
  cbWndExtra        DWORD      ?
  hInstance         DWORD      ?
  hIcon             DWORD      ?
  hCursor           DWORD      ?
  hbrBackground     DWORD      ?
  lpszMenuName      DWORD      ?
  lpszClassName     DWORD      ?
WNDCLASSA ENDS

WNDCLASS  equ  <WNDCLASSA>

вот всё что с ними есть ...
zverozavr вне форума   Ответить с цитированием
Старый 11.11.2012, 03:40   #30
Денис18
Новичок
 
Регистрация: 11.11.2012
Сообщений: 1
Репутация: 10
По умолчанию

Доброго времени суток . Помогите пожалуйста!
Нам задали лабораторную по ООП нужно написать программу 5-ти угольник и нужно чтобы он передвигался,менял цвет и радиус. я не пойму как описать этот 5-ти угольник.Заранее спасибо
Денис18 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование Granus Общие вопросы Delphi 2 24.12.2008 08:44
Рисование TriCERATOP Помощь студентам 5 28.11.2008 16:09
Рисование... HunterMan Win Api 10 30.04.2008 23:46


21:44.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru