Нужен кодер для MASM IDE

Тема в разделе "WASM.PROJECTS", создана пользователем amdtm, 25 фев 2006.

  1. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    AsmGuru62
    Прошли уже все обещанные сроки, заждались :)
     
  3. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    Понимаю... не нашёл ничего хорошего, чтобы разрабатывать большой проект, пришлось делать самому.
     
  4. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    это мне? :) ню-ню! :)
     
  5. amdtm

    amdtm Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    196
    Тема уже неактуальная - разве вашу программу на ассемблере оценят дороже, чем аналогичную на VC++?
    Для небольшого или среднего "проекта для себя" обычно подходит RadAsm, например.

    Программирование на MASM.
    Все начинается с мелочей. Заметьте сейчас я пишу это на понятном для многих языке, черными буквами на белом фоне.
    Макроассемблер использует тот же формат ресурсного файла, что и VС++, но MASM добавляет свою неповторимую волокиту - каждый идентификатор должен иметь уникальное числовое значение.
    Но на этом все не заканчивается - используемые символьные идентификаторы ресурсов должны быть продублированы в другом формате, а иначе нельзя, в инк-файле.
    RadAsm похоже решает эту задачу и практически все автоматизирует. Я все время порываюсь написать спецутилитку длч автоматического создания инк файла идентификаторов ресурсов на стадии компиляции ресурсов и присоединения его к проекту при ассемблировании.


    Группу Контролов диалога при проектировании диалога в RadAsm можно было бы выделять как принято в вижелбейсике, т.е мышкой - это намного удобнее.


    Ничего не мешает использовать библиотеку для конкретного ассемблера типа VCL, WTL, MFC. Без этих библиотек С++ просто улучшенная версия С - С склассами.

    Класс -это дальнейшее развитие принципа структуры.
    Тед Фейсон утверждает в своей книге "ООП на Boland С++ 4.5, что
    ООП можно применять и в программах на бейсике, и на ассемблере, но это связано с определенными трудностями.

    Инкапсуляция
    назвать переменные трудными именами as56567657857865_m_hWnd
    и получать их с помощью функций или Tbar_m_hWnd,
    Tbar_MyProc
    Наследование
    Добавить в программу производный класс от базового значит добавить член структуры с указателем на структуру базового класса
    :)


    Каждый пишет на том, языке, который больше всего отвечает его сути.
     
  6. amdtm

    amdtm Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    196
    Раз тут упомянули дымок, то большую часть времени я практикую тенсёгрити и отбиваюсь от летунов. Времени писать программы не остается, минут 15-30, да и желания, но вырабатывается звериный рык и боевой настрой, например.
     
  7. amdtm

    amdtm Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    196
    В данный момент я выбрал для себя RadAsm, но всю отладку программы на MASM удобнее всего производить в VC++. В справочных файлах RadAsm есть описание, как это сделать.

    Неприятные мелочи для asm-программистов.
    Еще один момент для пишущих свое IDE.
    Без тулбара не обходится практически любая современная программа. но как получается битмэп для ресурса? Вы должны вручную собрать весь набор картинок из отдельный рисунков в один большой файл. Чтобы что-то изменить или добавить необх начинать сначало. Можно ведь собрать этот большой битмеп прямо в креаторе тулбара, потом сохранить или перезаписать. amdtm (C) :)
     
  8. AsmGuru62

    AsmGuru62 Member

    Публикаций:
    0
    Регистрация:
    12 сен 2002
    Сообщения:
    689
    Адрес:
    Toronto
    amdtm

    Неудачный подход. Наследование достигается не через указатель, а через полное включение базовой структуры в структуру наследуемого класса. Причём обязательно в самом его начале:
    Код (Text):
    1. virtual at 0
    2. TBase:
    3.     .vtbl_Offset PVTABLE ?
    4.     .Handle HWND ?
    5.     .currMsgID UINT ?
    6.     .currMsgWP WPARAM ?
    7.     .currMsgLP LPARAM ?
    8.     .rcClient RECT
    9.     .size = $
    10. end virtual
    11.  
    12. virtual at 0
    13. TDerived:
    14.     .base rb TBase.size
    15.     .docPath WCHARS MAX_PATH
    16.     .pSplitter1 POBJECT ?
    17.     .pSplitter2 POBJECT ?
    18.     .size = $
    19. end virtual
    Таким образом если вызывается функция для базового класса, но передаётся указатель на наследованный класс - всё работает как надо (как в С++), поскольку данные на базовый класс не изменили своих смещений. Если же там будет указатель на базу, то надо перед вызовом функций всегда перезагружать этот указатель.
     
  9. amdtm

    amdtm Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    196
    AsmGuru62
    Вам виднее. Другой пример, кто-то на форуме спросил меню на ребарах, в стиле Експлоера. Повторное использование кода не предусатривалось. Я случайно прочитал эту тему и немного изменил этот код, оформив все в библиотеку. Теперь, если устранить глюки и указанные там недостатки, можно получить готовую библиотеку для галереи повторноиспользуемого кода, а также сделать шаблон для радасма или асмстудии.
     
  10. God_Father

    God_Father New Member

    Публикаций:
    0
    Регистрация:
    5 авг 2007
    Сообщения:
    99
    Зачем вы все шаблоны для радасма какого-то клепаете
    Давно бы уже лучше сделать могли бы.

    Народ подскажите как нумерацию строк в ричэдите сделать,
    что надо 2х кадровый буфер обязательно?

    Кста
    amdtm
    , я сам сделал док ребар нормальный, может с менюхой твоей синтегрируем, а заодно и компонент нормальный будет?