XSetWindowBackgroundPixmap / Xlib.inc?

Тема в разделе "WASM.UNIX", создана пользователем cresta, 19 ноя 2005.

  1. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Приветствую.

    Повторил примерчик с hello world, но ГНУсный AT&T синтаксис что-то не нравит :dntknw:

    Хотел попробовать fasm'ом - нигде не могу найти Xlib.inc для него. Существует в природе?

    Или надо писать самому? Если у кого есть, поделитесь, или мож ссылку.



    И ещё вопрос: тот же пример на C++, цвет бэкграунда и шрифта поменял - нормально, попытался картинку вставить бэкграундом - облом :dntknw:

    XReadBitmapFile вроде не возвращает ошибки BadAlloc, но если затем предположительно загруженный pixmap попытаться передать в XSetWindowBackgroundPixmap, то бэкграунд окна не перерисовывается. Вместо картинки - кусок изображения десктопа, который был под окном. Как можно это исправить? Пробовал грузить как png, так и bmp.

    Проект в аттаче. Спасибо.







    [​IMG] _1716066776__cpp_xwindow.zip
     
  2. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля


    Я не видел, но в самом примере прям в тексте константы определены. Смеяться будете, но я когда его писал описание типов и констант смотрел в соответвующем модуле из FreePascal.



    Перписать пример под fasm вроде можно без проблем. Какое место у тебя не получилось?





    pixmap это не png и не bmp, но что это за формат сейчас точно не отвечу
     
  3. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    В примере константы понятно, что определены, только прототипов ф-ций нет, кроме того в примере пяток функций, можно конечно вручную их расписать. А если что-то другое писать, не хеловорд? Остальные прототипы, структуры, константы - как с ними быть, их же не пять штук :)

    В принципе я и с фасмом не знаком, а тут ещё и XLib...

    А fasm просто не может найти описания ф-ций, вот и вся ошибка. Пишет undeclared на X.... ф-ции :dntknw:



    Что касается pixmap, то я знаю, что это не png, имя png-файла - один из вход. параметров, а результат загрузки из этого файла - заполненная переменная типа Pixmap, адрес которой передается в также в функцию.



    Сейчас мысль появилась - попробовать qt-класс QPixmap для загрузки. Надо проверить, возможно пройдет номер...
     
  4. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля


    как и со многими другими вещами, писать самому или искать что кто-то это уже сделал (это не просто - мы же не на Delphi программируем), может среди буружев кто и сделал :derisive:



    Передача параметров функций в юникса всегда одинаковая, в Windows оказывается это называется CDECL. Проще говоря стндарт Си. Параметры через стек, сначала последний, и в конце первый, затем call на адрес функции.



    Если найдешь под любой ассемблер не забудь сказать. :derisive:





    Ужас какой! А просто передать управление по адресу он не может? Вот по-этому я и перешел когда-то на as - никаких подражаний высокоуровневым языкам. Все просто. Извините за офтопик.



    Если знаешь аглийский то попробуй тут - http://board.flatassembler.net/forum.php?f=17
     
  5. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62
    А fasm просто не может найти описания ф-ций, вот и вся ошибка. Пишет undeclared на X.... ф-ции :dntknw:



    как насчёт



    extrn X...



    ?
     
  6. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    На

    extrn ...

    data import

    library '/usr/X11R6/lib/libX11.so'

    отзывается одним: illegal instruction :dntknw:

    Делал на примере виндового, почему-то не идёт.

    В чем может быть ошибка?



    [​IMG] 1719802245__gui_fasm.asm
     
  7. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
  8. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62
    отзывается одним: illegal instruction :dntknw:

    Первая строка должна быть просто



    format ELF



    чтоб был объектный файл,

    а потом ld иль gcc - делаешь исполняемый



    И extrn раскомменть
     
  9. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62
    Оффтоп: Где можно прочитать про динамическое связывание,

    а главное про формат структуры для динамического связывания в ELFовских файлах (желательно даже на русском :))
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Спасибо. Компилится. Линк с gcc 9,4кб c ld 3,8кб.
     
  11. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля


    strip или ключ -Wl,-s для gcc



    дело в том никакой разницы быть не должно по определению

    ты, конечно, линкуя с помощью ld можешь убрать инициализируюший код(~2k), определив возможно пару перемнных и метку _start, но лучше этого не делать :derisive: