можно тут посмотреть http://wiki.kolibrios.org/wiki/OpenDialog/ruGerdtR wrote:Пока интересует функции OpenDialog в proc_lib. Я так понял это для появления окна открытия файла.
Начинающий
Спасибо. Я ещё нашел пояснялки в исходниках:) Сразу не додумался посмотреть. Осталось только исходники обновить. А то у меня ещё с 0.7.7.0.
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
dev64, судя по приведённому посту, вторая ссылка неверная, поскольку ведёт на код возможного загрузочного сектора. Правильная ссылка - на kernel/trunk/kernel.asm, примерно с начала до первой команды jmp osloop, но там далеко не только начальная загрузка. Менее конкретных ссылок нет. Конкретные вопросы по устройству ядра - более конкретные, чем "как грузится система?" - можно задавать отдельно. Например, вот тут были достаточно конкретные вопросы, и на них были конкретные ответы.
Сделаем мир лучше!
CleverMouse, спасибо за ссылочки, особенно внутри форума. Ядро уже слегка смотрел. Код оно конечно что ж, код оно неплохо тож Но без RиTFM-а далеко не уплывешь
И опять вопрос:) Моя программка должна читать внешний файл, но дело в том, что это файл лежит там же где и прога, а где лежит прога не известно. Надо как-то узнать, где лежит прога. Как?
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Можно просто открывать файл по имени, без указания пути - должно сработать.
Не-а. По умолчанию каталог /rd/1. Он там его и ищет. А моя прога пока не настолько разработана, что бы её в дистрибутив добавлять:)
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Программа на ассемблере?
Когда-то в змейке делал так. В заголовке программы есть поле для указателя на абсолютный путь запущенного бинарника. Если в общих словах, то нужно делать так:
Это, скорее, псевдокод. На веру принимать не стоит. Для понимания следует спокойно разобраться с цепочечными командами и флагом направления (direction flag) по какой-нибудь книжке. Например, по Юрову.
Code: Select all
mov edi, cur_dir_path
xor eax, eax
mov ecx, 4096
repne scasb
mov al, '/'
neg ecx
add ecx, 4096
std
repne scasb
cld
mov dword[edi+2], 'file'
mov dword[edi+6], 'name'
Для 70й функции:
Далее. Посмотри внимательно на заголовок программы - MENUET01 и так далее. Последний параметр - это указатель на путь, откуда запущена программа.Также функция поддерживает относительные имена. Если путь начинается не с '/', то он считается относительно текущей папки. Получить или установить текущую папку можно с помощью сисфункции 30.
Code: Select all
db 'MENUET01' ; 8-байтный идентификатор MenuetOS
dd 0x01 ; версия заголовка (всегда 1)
dd START ; адрес первой команды
dd I_END ; размер программы
dd 0x1000 ; количество памяти
dd 0x1000 ; адрес вершины стэка
dd 0x0 ; адрес буфера для параметров
dd path; <---------------адрес буфера для пути
;...................................
path: rb 1024 ; после запуска программы в этом буфере будет путь
Век живи -- век учись. Я помнил, что такое как-то возможно, но сходу не нашёл. А готовый костылик подкинуть всегда проще.
Спасибо. У меня просто не было современных описаний заголовка:( Ах да. Чуть не забыл. SoUrcerer, программа на асме. Прямо в Колибри пишу:)
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Вопрос: можно ли считывать текст с чужого окна. Хотя бы с Tinypad'а?
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Можно получить копию экрана. Текст после вывода на экран становится растровым изображением, превратить растровое изображение обратно в текст затруднительно (хотя я делал это даже в Колибри, не помню, выкладывал или нет OCR).
Who is online
Users browsing this forum: No registered users and 34 guests