Ошибки MASM

Тема в разделе "WASM.ASSEMBLER", создана пользователем MirrorBlack, 22 мар 2009.

  1. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Решил создать после темы:
    http://www.wasm.ru/forum/viewtopic.php?id=31806
    Предлагаю делиться здесь бесценным опытом полученным после бессонных ночей.

    Собственно первым пунктом идёт структура DISPPARAMS (oaidl.inc):
    DISPPARAMS STRUCT DWORD
    rgvarg PVOID ?
    rgdispidNamedArgs PVOID ?
    cArgs DWORD ?
    cNamedArgs DWORD ?
    DISPPARAMS ENDS
    В masm два последних параметра WORD.

    В masm утверждается что он готов работать с UNICODE, но если посмотреть структуру WIN32_FIND_DATA (windows.inc):
    WIN32_FIND_DATA STRUCT
    dwFileAttributes DWORD ?
    ftCreationTime FILETIME <>
    ftLastAccessTime FILETIME <>
    ftLastWriteTime FILETIME <>
    nFileSizeHigh DWORD ?
    nFileSizeLow DWORD ?
    dwReserved0 DWORD ?
    dwReserved1 DWORD ?
    cFileName BYTE MAX_PATH dup(?)
    cAlternate BYTE 14 dup(?)
    WIN32_FIND_DATA ENDS
    Отсутствует WIN32_FIND_DATAA и WIN32_FIND_DATAW, т.е. этот вариант нам парят как универсальный. А для UNICODE 2 последних параметра WORD.
    И это не единичный случай.
     
  2. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Другими словами - если что то не работает - сверять структуры масм32 и сишные заголовки в студии ??
     
  3. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Rockphorr
    Другими словами - тема создано для того чтоб люди знали где собака порылась.
     
  4. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    В структуре INPUT_RECORD, во вложенной структуре KEY_INPUT_RECORD поле bKeyDown должно быть не DWORD, a BYTE. Заметил это, когда писал консольное приложение, работающее с клавиатурой. Эта ошибка есть в masm9.0/masm10.0
     
  5. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    В структуре INPUT_RECORD, во вложенной структуре KEY_INPUT_RECORD поле bKeyDown должно быть не DWORD, a BYTE. Заметил это, когда писал консольное приложение, работающее с клавиатурой, которое нифига не работало :) Эта ошибка есть в masm9.0/masm10.0
     
  6. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    MirrorBlack
    Разумнее поделиться с Хатчем:
    http://www.masm32.com/board/index.php?board=14.0
     
  7. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    kero
    Есть у меня глубокие сомнения что на нас посыпятся обновления masm.
    Лучше делиться здесь.
    Надеюсь в дальнейшем эта тема будет состоять только из описания ошибок и методов их исправления.
     
  8. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    MirrorBlack
    Вы ведь о masm32, так?
    Тогда разумнее и уместнее - на оф.сайте masm32.
    Независимо от глубины сомнений.
     
  9. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    MirrorBlack
    Hutchesson это не M$, он весьма отзывчивый товарищ и энтузиаст проекта :)
    Но и здесь копия тоже не помешает :)
     
  10. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    kero Y_Mur
    Поставьте себя на место разработчика. Представьте что Вам ежедневно что то шлют. Вы будете сразу всё исправлять?
    То что некоторые считают ошибкой - является результатом непонимания. Здесь это можно фильтровать.
    Если найдётся этузиаст который будет раз в месяц переводить и отправлять собранную информацию Хатчу - совсем хорошо.
     
  11. MirrorBlack

    MirrorBlack Алексей

    Публикаций:
    0
    Регистрация:
    21 июн 2008
    Сообщения:
    249
    Адрес:
    Moscow
    Microedition
    KEY_EVENT_RECORD
     
  12. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    MirrorBlack, не стоит ставить себя на место разработчика и представлять что-либо за него: он опубликовал masm32 и даже указанный подфорум открыл, для тех, кто заинтересован в развитии проекта.
    На этом закругляюсь.
     
  13. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    MirrorBlack
    Во всяком случае мне он по мылу сразу дал развёрнутый ответ на блок вопросов касающихся несовершенства масм, разьяснил, где я не прав по недопониманию, где он бессилен из-за зависимости от M$, а где проблема решается через макросы со ссылкой на соответсвующую ветку форума.
     
  14. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    Наверно лучше где нибудь на васме сделать раздел тапа FAQ но называемый MASM32 errata и туда добавлять этот бесценный опыт, который к сожалению накапливается очень медленно - топик устареет намного быстрее