Универсальность библиотек

Discussing libraries simplifying applications development
  • По моему пустая затея - под Win с большой долей вероятности существует любая библиотека которая может быть реализована в Колибри усилиями дефолтных программистов. Лучше уж ставить проблему наоборот - как использовать библиотеки других ОС в Колибри (есно соблюдая лицензию). Я бы например взялся за реализацию медиаплеера, если бы хватило знаний по библиотекам Линусовых плееров, но пока только мечта. (впрочем zSea тоже задумывалась еще 4 года назад)
  • вполне возможно
    но мне нужно все-таки знать как это можно сделать..
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • нет идей?..
    Пока вижу только такой вариант: загружаем файл в память, ищем адреса функций, и, собственно, вызываем. Адреса думаю найду (имена в хекс-редакторе увидел, адреса рядом наверное). Но это как-то не очень разумно. Или нормально?
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Вообщето адреса в момент запуска корректируются системой. Так что имена не меняются, а вот адреса могу оказаться другие, в зависимости от адреса начиная с которого загружена функция. Скорее всего тебе придется после загрузки корректировать имеющиеся адреса. Я не знаю как в текущей ситуации это дело реализовано (код в ядре не разбирал), но предпологаю что изначально там просто хранится смещение от нулевого адреса, хотя могу ошибаться. Надо автора кода в ядре спросить, кстати кто это все изначально реализовал Serge или Daimond?
  • Проще сделать obj пригодный для статической линковки. Объявить все экспортируемые функции public, тогда для них будут записи в таблице символов COFF. Pixlib вообще на С и должна свободно ликоваться с Win.
  • Serge, а как это сделать? Ну или где прочитать?

    Mario, неужели изменятся адреса относительно начала файла? это мне кажется странным..
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Gluk

    Если на фасме то объяви экспортируемые функции public

    Code: Select all

    public _myfunc
    _myfunc:
               ...
               ...
               ret
    Если на С то компилятор сделает всё сам.
  • Gluk
    Я имел ввиду что твоей программе придется скорректировать после загрузки адреса, чтобы каждый раз при обращении не вычислять адрес плюс смещение. Это если будет использоваться динамическая подгрузка, а не статическая линковка.
  • спасибо вам большое)
    дальше доразбираюсь..
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Who is online

    Users browsing this forum: No registered users and 26 guests