Board.KolibriOS.org http://board.kolibrios.org/ |
|
Загрузка библиотек http://board.kolibrios.org/viewtopic.php?f=1&t=1839 |
Page 6 of 6 |
Author: | IgorA [ Sun Nov 22, 2020 10:47 pm ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
ProMiNick wrote: да не балуйся уже с этим макросом, я озадачился загрузчик в ядро поместить. Если получится сделать в ядре, то будет очень хорошо ![]() ProMiNick wrote: banner dq ? Сюда по возможности желательно поставить KOLIBRI1 вместо MENUET01 |
Author: | ProMiNick [ Sun Nov 22, 2020 11:07 pm ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
IgorA wrote: Планируется ли вывод сообщений (на Board) если библиотека не найдена или функции в библиотеке нет? В планах если ничего не загрузится - приложение тупо не стартанет. В хотелках чтоб сообщило почему не стартанет, но без гарантии (надеюсь как то сделать уведомление пользователя из ядра, но поскольку не знаю как.) хотелок-реализаций. IgorA wrote: ProMiNick wrote: banner dq ? Сюда по возможности желательно поставить KOLIBRI1 вместо MENUET01 элементарно. без проблем. Не вместо а добавить в мписок допустимых |
Author: | IgorA [ Sun Nov 22, 2020 11:14 pm ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
ProMiNick wrote: В хотелках чтоб сообщило почему не стартанет, но без гарантии (надеюсь как то сделать уведомление пользователя из ядра, но поскольку не знаю как.) хотелок-реализаций. Делать через notify наверное не вариант, потому как она сама подключает libimg для показа картинок ... Потому думаю что остается через функцию 63.1 с выводом на Board. |
Author: | ProMiNick [ Mon Nov 23, 2020 12:17 am ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
ProMiNick wrote: IgorA wrote: ProMiNick wrote: banner dq ? Сюда по возможности желательно поставить KOLIBRI1 вместо MENUET01 элементарно. без проблем. Не вместо а добавить в мписок допустимых Code: MAX_SUPPORTED_MENUET_FILE_VERSION = 2из (root)/kernel/trunk/core/taskman.inc всего одну функцию модифицировать. (этот вариант помоему даже короче по размеру не смотря на добавленую проверку (а не колибри ли в баннере хнднра?) |
Author: | ProMiNick [ Mon Nov 23, 2020 2:33 am ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
ладно dunkaist я тут с ужасом осознал что COFF формата я не знаю совсем... А PE очень хорошо. (меня даже вариант исполнимые - менуэт, а либы - ПЕ ДЛЛ вполне устроит) готов взяться за список this list... ... если подсказывать будешь. начнем по порядку. вызов DllMain при загрузке/выгрузке DLL - адресс дллмайна из заголовка легко поднять, в чем именно здесь проблема? как ядро перекидывает управление в юзермод? оно параметры пробрасывать не может? |
Author: | dunkaist [ Wed Nov 25, 2020 6:51 am ] |
Post subject: | Re: Загрузка библиотек |
ProMiNick wrote: вызов DllMain при загрузке/выгрузке DLL - адресс дллмайна из заголовка легко поднять, в чем именно здесь проблема? как ядро перекидывает управление в юзермод? оно параметры пробрасывать не может? Well, I'm not the author of mentioned PE patch but let's think together. My understanding is that there is no bug or issue breaking features from the list, they are 'just' not implemented.Kernel loads PE exe, maps system library and starts app execution from dynamic linker, i.e. already in the userspace. You don't need to pass anything more from the kernel. |
Author: | Coldy [ Wed Nov 25, 2020 9:12 am ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
dunkaist wrote: Coldy already implemented this about a year ago. It wasn't merged to trunk. May be because automatic loading of libraries was also implemented for PE. When somebody will implement features of this list, loading of libraries will be merged to trunk automatically. Your approach looks like a double work which you are free to do of course. Привет! Действительно, в начале этого года я выкладывал модификацию ядра + dll.obj (основана на функциях dll.inc), которые реализуют автоматическую загрузку библиотек приложения (но там еще требуется доработка, чтобы загружались и зависимые библиотеки, а также реализовать вызов notify для вывода сообщения какая библиотека и функция не найдена, если что-то пошло не так). Плюс этого в том, что не нужно в каждое приложение и библиотеку включать код загрузки библиотек и вызывать функцию инициализации кучи (ф. 68.11), т.к. это все живет в dll.obj и вызывается ядром при запуске приложения, соответственно уменьшается размер приложения. Никаких реакций тогда в течении месяца не последовало, тема мной была удалена, т.к. я решил, что это никому не интересно. |
Author: | IgorA [ Wed Nov 25, 2020 11:40 am ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
Coldy wrote: Действительно, в начале этого года я выкладывал модификацию ядра + dll.obj (основана на функциях dll.inc), которые реализуют автоматическую загрузку библиотек приложения Привет! Не совсем пойму как будет работать эта загрузка. Допустим программе нужно загрузить библиотеки, она сначала должна загрузить библиотеку для загрузки библиотек, что-бы через эту библиотеку загружать остальные библиотеки? Тогда как она будет загружать эту загрузочную библиотеку? Coldy wrote: а также реализовать вызов notify для вывода сообщения какая библиотека и функция не найдена, если что-то пошло не так Это очень хорошо, может этот код пригодится для этого: Spoiler: Show |
Author: | dunkaist [ Wed Nov 25, 2020 11:45 am ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
IgorA wrote: Допустим программе нужно загрузить библиотеки, она сначала должна загрузить библиотеку для загрузки библиотек, что-бы через эту библиотеку загружать остальные библиотеки? Тогда как она будет загружать эту загрузочную библиотеку? viewtopic.php?f=1&t=1839#p35842
|
Author: | Coldy [ Wed Nov 25, 2020 11:57 am ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
IgorA, в программе надо просто прописать импорты, как обычно с dll.inc и дать ссылку в конце заголовка. Идея в том, что загрузка библиотек происходит точно также как с dll в форточках или so в никсах. Это обсуждение надо перенести в соответствующую тему. |
Author: | Coldy [ Wed Nov 25, 2020 1:04 pm ] |
Post subject: | Re: box_lib.obj - библиотека gui компонентов |
dll.obj загружается ядром, при этом ядро же устанавливает точку входа именно в этой библиотеке. Далее dll.obj загружает нужные приложению библиотеки и затем передает управление на точку входа приложения. |
Page 6 of 6 | All times are UTC+03:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |