Алиасы/переименование символов библиотек

Discussing libraries simplifying applications development
  • rev #9568
    Переименовал функцию edit_box в edit_box_draw. Многие ассемблерные приложения обновил, но возможно что где-то остались программы использующие функцию edit_box для рисования. Потому для обратной совместимости в экспорте библиотеки box_lib сделал 2 функции edit_box_draw и edit_box.
  • Coldy wrote:2. Библиотека rasterworks.obj имеет функцию cntUTF-8, это не соответствует стандарту имен языка С (и производных от него). В CLAYER используется алиас countUTF8Z, предлагаю также добавить соответствующий символ в rasterworks.obj
    Сделано (r9631).
  • Может быть я не шарю... Но зачем ещё одна метка? Мне кажется этого достаточно....

    Code: Select all

    @EXPORT:
    export  drawText,   'drawText', \
            countUTF8Z,  'cntUTF-8', \  ;old function name
            countUTF8Z,  'countUTF8Z', \
            charsFit,       'charsFit', \
            stringWidth,  'strWidth'
    
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • turbocat wrote:Может быть я не шарю... Но зачем ещё одна метка? Мне кажется этого достаточно....
    Да я сам не шарю. Но Fasm говорит: "символ уже определен" и не компилирует.
  • Да действительно. Видимо макрос кривой
    Изобретайте колёса каждый раз, когда хотите написать новую программу.
  • Fasm говорит: "символ уже определен" и не компилирует.
    делов то...
    вместо

    Code: Select all

    macro export [name,sname]
    { common local ..export
      ;align 16
      ..export:
      public ..export as 'EXPORTS'
      forward
        dd __#name#_export_name__,name
      common
        dd 0
      forward
        ;align 4
        __#name#_export_name__ db sname,0
    }
    вот это

    Code: Select all

    macro export [name,sname]
    { common local ..export
      ;align 16
      ..export:
      public ..export as 'EXPORTS'
      forward
        local ..expname
        dd ..expname,name
      common
        dd 0
      forward
        ;align 4
        ..expname db sname,0
    }
  • ProMiNick
    Я в этих макросах ничего не понимаю и вообще впервые правлю программу на fasm'е в SVN. Но: новое имя функции добавлено (и уже использовано), старое сохранено. Исправлен только один файл, ничего больше не затронуто. Библиотека работает. Задача решена. Если кто-то может сделать лучше, то пожалуйста, я, конечно, не возражаю, тем более это не моя программа.
  • akron1, все правильно сделал. Старое имя пока нужно, т.к. оно используется в других программах (например, видел в с--). Если везде переименовать, то старое имя можно будет удалить.
  • Who is online

    Users browsing this forum: No registered users and 7 guests