Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Apr 25, 2019 9:11 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: Wed Nov 19, 2014 1:17 pm 
Offline

Joined: Wed Nov 19, 2014 1:01 am
Posts: 2
Функции 6 и 7 не находят файл лежащий в той же папке что и исполняемый файл. Подскажите как его открыть.
Code:
handle dw 0
file_test db 'Test.bmp',0
point_fname dd file_test

start:

red:
    call draw_window

pixel:
    mcall 1,100,100,0x33ffffff
    call red

draw_window:
    mcall 12,1
    mcall 0,<50,800><50,600>, 0x336633ff,,title

    mcall 7,file_test,<40,55><20,20>
    mcall 6,file_test,0x00,0x10
   
    cmp eax,-1
    je ttt

    mcall 12,2
    ret

lsz title,\
    ru'колобок',\
    en'kolobok',\


Attachments:
Безымянный 2.png
Безымянный 2.png [ 4.55 KiB | Viewed 2858 times ]
Top
   
PostPosted: Wed Nov 19, 2014 1:40 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
1. Пользоваться ф.70
Описание:
http://websvn.kolibrios.org/filedetails ... sfuncr.txt
или
http://wiki.kolibrios.org/wiki/SysFn70/ru

2. Делать загрузку файла в подпрограмме отрисовки окна не самая лучшая идея, а вдруг потом захочется с менее быстрого носителя чем рамдиск файл открывать? Например с флопика, как пример самого медленного диска из имеющихся.

3. В данном конкретном коде ф.6 и ф.7 должны располагаться в обратной последовательности, а еще и параметры в обоих случаях заполнены неверно. Читайте документацию внимательней. Ф.6 не заполнен ESI, а ф.7 указывает не на буфер с изображением, а на строку имени.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Last edited by Mario_r4 on Wed Nov 19, 2014 2:08 pm, edited 1 time in total.

Top
   
PostPosted: Wed Nov 19, 2014 1:54 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Mario_r4 сказал все правильно, но еще нужно учесть что изображения bmp так сразу выводить не получится. Потому что в них первые 54 байта это заголовок самого файла а уже дальше идет само изображение. Т.е. нужно к памяти указывающей на изображение прибавлять 54. И это еще не все, изображение будет перевернутым сверху вниз, и его нужно будет самому вывернуть или в фале bmp или в программном коде.


Top
   
PostPosted: Wed Nov 19, 2014 2:09 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
IgorA
Может у человека особый BMP, который перевернут или совсем особый, который на самом деле RAW.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
PostPosted: Wed Nov 19, 2014 2:20 pm 
Offline

Joined: Wed Nov 19, 2014 1:01 am
Posts: 2
Заголовок с файла вырезан, Mario_r4, а как объявить информационную структуру?


Top
   
PostPosted: Wed Nov 19, 2014 2:29 pm 
Offline
Kernel Developer

Joined: Sun Feb 10, 2013 12:37 pm
Posts: 2329
Вий wrote:
а как объявить информационную структуру?

Например так:
Code:
align   4
fileinfo:
.subfunction   dd 0
.Offset      dd 0
.Offset_1   dd 0
.size      dd 0 ; здесь записать размер файла в байтах
.return      dd file_body ; указатель на область памяти куда файл загрузит
      db 0
.name:      dd file_name ; указатель на имя файла

file_name   db '/rd/1/test.bmp',0

Вообще правильно сначала запросить данные на файл (ф.70.5), выделить память и потом уже загрузить (ф.70.0).

З.Ы. Можно вообще не париться с загрузкой и присоединить файл изображения во время компиляции, если не планируется его менять, но исполняемый бинарник при этом разбухнет конечно.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 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