Вопрос по фасму

Discussion in 'WASM.BEGINNERS' started by wcools, Oct 14, 2008.

  1. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    Нужно сделать меню и диалог в прогрмме. Видел примеры , там диалог описан в section '.rsrc' . Как сделать описание ресурсов в отдельном файле??? Писал файл ресурсов для VC++ , для асма он будет такойже??? И еще: в примерах
    import user,DialogBoxParam,'DialogBoxParamA',EndDialog,'EndDialog... Приходится подключать каждую используемую апи,
    это неудобно, можно както этого избежать???
     
  2. Marazm

    Marazm Member

    Blog Posts:
    0
    Joined:
    Mar 8, 2004
    Messages:
    95
    Ура, у меня на работе появился инет:)

    1) Использовать внешний "компилятор ресурсов". Посмотрите как это делается, скажем в примерах с ипользованием ассемблера masm32
    2) Для фасма нет, а для внешнего "компилятора ресурсов" да.
    3) Используйте include '%fasminc%\user32.inc'
     
  3. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    Поздравляю.
    Когда под вижуал ресурсы описывал, никаким компилятором не пользовался, просто техт писал
    MyMenu MENU
    {
    MENUITEM ....
    }
    В фасме ведь почти тоже самое
    menu MyMenu
    menuitem 'COM1',0,MFR_POPUP
    Так может это в файле ресов написать???
     
  4. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    посмотри здесь - вариантов много.

    +++++++++++++++++++++++++++++++++++

    можно сделать rc, его откомпилировать и поключить:
    Code (Text):
    1. section '.rsrc' resource from 'dialog.res' data readable
    для диалогов визуальный режим имеет смысл, для всего остального - незначительный. есть промежуточный вариант - конвертер, который конвертит диалоги из rc в формат фасма (см. там же)

    ++++++++++++++++++++++++++++++++++++

    импорт: вручную, "полный" импорт либо автоматический сканер импорта (см. там же)
     
  5. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    По Аглийски не читаю :dntknw:
     
  6. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    тогда подсказка: FASM Add-In 1.61 Russian help означает "Справка к надстройке FASM на русском языке", а это - полный пакет, настроенный на работу после распаковки с диска Д: (для других дисков - вручную поменять С: на Д: в винасм.ини и вааддинс.ини, или сделать это через окна настроек иде и надстройки). для вопросов там есть русский раздел, но регистрироваться все равно придется по-английски :dntknw:
     
  7. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    А вот в этой строчке ошибка.(это не я придумал, а фасм)

    Есть ли у кого л-ра по описанию ресурсов для фасма?
     
  8. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    сообщение фасма в студию

    fasm.pdf + RESOURCE.INC + примеры
     
  9. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    Сектор приз :)

    extra characters on line

    Как я сам-то не догадался ?!*:^)(/.\"№# Целый день в нете, примеров на фасме не нашел, может кто поделится. RESOURCE.INC сложновато для моего уровня, мнебы книжку для начинающих.
     
  10. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    тогда весь проект :)

    [​IMG]

    при компиляции rc в res никакой разницы с масмом или VC нет.
    примеров навалом - заходим на форум фасма и качаем все подряд, потом изучаем (не говоря о примерах, идущих в пакете fasmw)

    прилагаю ресурсы от своей проги (rc преобразован в dialogs.* утилиткой, но они могли бы быть написаны и вручную)
     
  11. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    да, на всякий случай:
    1.в этом случае секция объявляется без from:
    Code (Text):
    1. section '.rsrc' resource data readable
    2.     include "resources.inc" ;*
    2.чтобы русские буквы попали в ресурсы правильно (а они там юникод), в начале включаем строчку:
    Code (Text):
    1. include 'encoding\WIN1251.INC'  ;*
     
  12. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    Чето я опять не догнал :dntknw:

    Написал так
    section '.rsrc' resource from data readable
    include 'hw.rc'
    Теперь файл подключается, но он сам корявый. Так понял в файле dialog.dat описание самого диалогового окна, в rc - переменные, ЧТО значит написанное в *.dat ???
    Почему так не робит??? Говорит illegan instruction
    ; файл hw.rc---------
    #define IDM_ONE =101
    #define IDM_TWO =103
    #define IDM_THREE =104
    #define IDM_hello =105
    #define ID_EDIT =106
    #define ID_BT1 =107
    #define ID_BT2 =108
    menu MyMenu
    menuitem 'COM1',0,MFR_POPUP
    menuitem 'ONE',IDM_ONE
    menuitem 'TWO',IDM_TWO
    menuseparator
    menuitem 'THREE',IDM_THREE,MFR_END
    menuitem 'COM2',0,MFR_POPUP+MFR_END
    menuitem 'hello',IDM_hello,MFR_END
     
  13. murder

    murder Member

    Blog Posts:
    0
    Joined:
    Jun 3, 2007
    Messages:
    628
    А я в Resource Hacker`е ресурсы клепаю.
     
  14. shoo

    shoo New Member

    Blog Posts:
    0
    Joined:
    Jul 17, 2003
    Messages:
    1,537
    Location:
    Ukraine
    это неправильно. есть 2 способа создания секции:
    1.
    Code (Text):
    1. section '.rsrc' resource data readable
    далее следуют описания ресурсов в формате фасма

    2.
    Code (Text):
    1. section '.rsrc' resource from 'dialog.res' data readable
    здесь ничего описывать или подключать не нужно, но должен существовать предварительно созданный файл dialog.res, который описывается в стандартном скрипте rc, а затем компилируется любым компилятором: rc.exe, gorc.exe и пр. - из того, что есть в наличии в пакетах masm/vc/goasm и пр.

    примечание: если выскакивает ошибка - нужно проверить текст до и после это строки, а также данную строку на предмет странных символов.

    прилагаю пример, который компилируется нормально
     
  15. wcools

    wcools New Member

    Blog Posts:
    0
    Joined:
    Sep 7, 2008
    Messages:
    89
    Убрал, сам натупил, теперь понял.

    ЗЫ: АСМ это всетки не c++