Board.KolibriOS.org

Official KolibriOS board
It is currently Mon Jan 17, 2022 7:31 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Fri Dec 31, 2021 1:17 pm 
Offline

Joined: Tue Apr 09, 2019 8:57 pm
Posts: 104
При адаптации CLAYER для динамического связывания столкнулся с некоторыми проблемами:

1. Библиотека box_lib.obj имеет функцию рисования edit_box. В CLAYER и в обертках других языков edit_box - это структура, а для рисования edit_box используется алиас edit_box_draw. Если это пытаться переопределять, то появляется конфликт со структурой edit_box. Нужно править код приложений.
Создатели box_lib, очевидно, ошиблись с наименованием этой функции т.к. она действительно должна называться edit_box_draw. Но т.к. предыдущее имя используют много приложений, предлагаю в box_lib добавить алиас edit_box_draw.

2. Библиотека rasterworks.obj имеет функцию cntUTF-8, это не соответствует стандарту имен языка С (и производных от него). В CLAYER используется алиас countUTF8Z, предлагаю также добавить соответствующий символ в rasterworks.obj

В дальнейшем если конфликтные символы будут исправлены во всех приложениях, то их можно исключить из бибилиотек.


Top
   
PostPosted: Sun Jan 02, 2022 8:37 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 937
rev #9568
Переименовал функцию edit_box в edit_box_draw. Многие ассемблерные приложения обновил, но возможно что где-то остались программы использующие функцию edit_box для рисования. Потому для обратной совместимости в экспорте библиотеки box_lib сделал 2 функции edit_box_draw и edit_box.


Top
   
PostPosted: Fri Jan 14, 2022 6:48 am 
Offline

Joined: Sun Oct 27, 2013 8:13 pm
Posts: 212
Coldy wrote:
2. Библиотека rasterworks.obj имеет функцию cntUTF-8, это не соответствует стандарту имен языка С (и производных от него). В CLAYER используется алиас countUTF8Z, предлагаю также добавить соответствующий символ в rasterworks.obj

Сделано (r9631).


Top
   
PostPosted: Fri Jan 14, 2022 9:24 am 
Offline
User avatar

Joined: Thu Jun 25, 2020 1:14 am
Posts: 118
Может быть я не шарю... Но зачем ещё одна метка? Мне кажется этого достаточно....

Code:
@EXPORT:
export  drawText,   'drawText', \
        countUTF8Z,  'cntUTF-8', \  ;old function name
        countUTF8Z,  'countUTF8Z', \
        charsFit,       'charsFit', \
        stringWidth,  'strWidth'

_________________
Gentlemen, has it occurred to you to use libc.obj instead of "reinventing the wheel"?


Top
   
PostPosted: Fri Jan 14, 2022 10:27 am 
Offline

Joined: Sun Oct 27, 2013 8:13 pm
Posts: 212
turbocat wrote:
Может быть я не шарю... Но зачем ещё одна метка? Мне кажется этого достаточно....

Да я сам не шарю. Но Fasm говорит: "символ уже определен" и не компилирует.


Top
   
PostPosted: Fri Jan 14, 2022 10:43 am 
Offline
User avatar

Joined: Thu Jun 25, 2020 1:14 am
Posts: 118
Да действительно. Видимо макрос кривой

_________________
Gentlemen, has it occurred to you to use libc.obj instead of "reinventing the wheel"?


Top
   
PostPosted: Fri Jan 14, 2022 3:32 pm 
Offline
User avatar

Joined: Thu Aug 04, 2016 10:43 am
Posts: 46
Quote:
Fasm говорит: "символ уже определен" и не компилирует.

делов то...
вместо
Code:
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:
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
}


Top
   
PostPosted: Sat Jan 15, 2022 9:14 am 
Offline

Joined: Sun Oct 27, 2013 8:13 pm
Posts: 212
ProMiNick
Я в этих макросах ничего не понимаю и вообще впервые правлю программу на fasm'е в SVN. Но: новое имя функции добавлено (и уже использовано), старое сохранено. Исправлен только один файл, ничего больше не затронуто. Библиотека работает. Задача решена. Если кто-то может сделать лучше, то пожалуйста, я, конечно, не возражаю, тем более это не моя программа.


Top
   
PostPosted: Sat Jan 15, 2022 11:27 am 
Offline

Joined: Tue Apr 09, 2019 8:57 pm
Posts: 104
akron1, все правильно сделал. Старое имя пока нужно, т.к. оно используется в других программах (например, видел в с--). Если везде переименовать, то старое имя можно будет удалить.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited