Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2010, 14:05   #1
blinkapec
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 12
Вопрос Нужно описать структуру с объединением

Здравствуйте. Проблема: не могу правильно описать структуру INPUT в MASM32. Вот C-вариант её описания из MSDN:
Код:
typedef struct tagINPUT { 
  DWORD type; 
  union {MOUSEINPUT mi; 
            KEYBOARDINPUT ki;
            HARDWAREINPUT hi;
           };
  }INPUT, *PINPUT;
UNION я так понимаю - объединение с другими структурами. То есть здесь вложены ещё 3 структуры. Мне нужна KEYBOARDINPUT. То есть её я так понимаю тоже нужно описывать.
C-вариант описания структуры KEYBOARDINPUT из MSDN:
Код:
typedef struct tagKEYBDINPUT {
    WORD  wVk;
    WORD  wScan;
    DWORD  dwFlags;
    DWORD  time;
    ULONG_PTR  dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT;
Описать эту структуру в MASM32 проблем не возникает:
Код:
KEYBDINPUT STRUCT
  wVk WORD ?
  wScan WORD ?
  dwFlags DWORD ?
  time DWORD ?
  dwExtraInfo DWORD ?    ;ULONG_PTR = DWORD
KEYBDINPUT ENDS
А как описать саму INPUT?

P.S. Похоже я неправильно что-то понимаю.

Последний раз редактировалось blinkapec; 28.11.2010 в 14:52.
blinkapec вне форума Ответить с цитированием
Старый 29.11.2010, 12:59   #2
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

загляните в windows.inc
Код:
INPUT_RECORD STRUCT 
  EventType             WORD ?
  two_byte_alignment    WORD ?
  UNION
    KeyEvent                KEY_EVENT_RECORD            <>
    MouseEvent              MOUSE_EVENT_RECORD          <>
    WindowBufferSizeEvent   WINDOW_BUFFER_SIZE_RECORD   <>
    MenuEvent               MENU_EVENT_RECORD           <>
    FocusEvent              FOCUS_EVENT_RECORD          <>
  ENDS 
INPUT_RECORD ENDS
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 30.11.2010, 12:40   #3
blinkapec
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 12
По умолчанию

Огромное спасибо. В windows.inc я искал структуру INPUT STRUCT.
blinkapec вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать структуру ВадикСтрах Помощь студентам 2 21.11.2010 17:57
Описать структуру NOTE stellavin Общие вопросы .NET 1 13.12.2009 21:01
Описать структуру с именем NOTE,содержащую следующие поля Wast Общие вопросы C/C++ 1 06.05.2009 22:41
Описать структуру содержащую поля LuenFen Общие вопросы C/C++ 1 16.04.2009 23:00