Вопросы по разработке

Applications development, KoOS API questions
  • maximYCH wrote:В ходе разработки менеджера обновлений возникли вопросы.
    1. Можно ли встроить png (или любой другой графический файл) в приложение (аналог ресурсов в виндовском приложении), без особых танцев с бубнами?
    2. Есть ли какая-либо библиотека для загрузки файла из сети? Я сейчас вроде прикрутил скачку файла через downloader, но хотелось бы освободиться от данной зависимости (ибо получится, как раньше было с sysxtree и copyr, кто знает - тот поймет).
    3. Могу ли я каким-либо образом указать версию (к примеру, возможно другое поле, вроде "Разработчик" или "Адрес программы в Интернете", т.е. что угодно), а потом из другой программы узнать значение? Т.е. грубо говоря есть программа А, в которой зашито в качестве версии значение 0.4.5, а есть программа Б, которая имеет процедуру/функцию getappversion, которая возвращает значение версии для произвольного файла, в котором зашито такое значение? Если да - то как работает такая функция?

    Разумеется, что речь идет о FASM.

    Заранее благодарен.
    1. Можно, внедрить как последовательность байт
    2. Нет, нету (а жаль)
    3. Для библиотеки - да. Для приложения - пока что нет
  • 1) Можно так:

    Code: Select all

    include 'kakayato_hren_ot_maximYCHa.png'
    2) downloader не так уж и плох, если не нравится напиши свой.
    3) Для этого делается опакечивание как например RPM в Linux. Пакет идет контейнером поверх бинарников и ресурсов. Это отдельная адская работа - Сизиф тому показатель.
    http://ru.wikipedia.org/wiki/Сизиф_(репозиторий)
    Сизиф (Sisyphus) — проект по разработке репозитория RPM-пакетов, один из 5 крупнейших в мире банков пакетов свободных программ.
    Работу над Сизифом ведёт команда разработчиков ALT Linux Team, в которую входит более 150 участников из пяти стран мира.
    Т.е. такую базу нужно постоянно отслеживать, упаковывать новые (а главное только рабочие) версии и лишь тогда можно использовать.
    У меня большие сомнения что ты потянешь такую работу - тем более она никак не будет оплачиваться, а автоматизировать все не получится.
  • 1) Это такая тонкая издевка? Очевидно же, что оно не будет работать.
    2) downloader не плох, но зависимость от программы - это плохо.
    3) Вопрос не имел отношения к менеджеру обновлений (там версия будет браться из ini файла, скачанного с сервера репозитория), это я про рабочий стол и иже с ним думаю.
  • maximYCH wrote:1) Это такая тонкая издевка? Очевидно же, что оно не будет работать.
    От чего же издевка? Как спросил так и ответили, причем что я, что Дима (судя по его ответу) поняли тебя одинаково, а значит ты неправильно задал вопрос.
    Если имелось ввиду простой способ использования графических файлов без привлечения библиотек, то ты же сам ратуешь за вынос всего из ядра - так что вперед и с песней разбираться с форматами библиотек. Либо libimg.obj, либо cnv_png.obj (cnv_bmp, cnv_gif, cnv_jpeg)... третьего пока нету.
    maximYCH wrote:3) Вопрос не имел отношения к менеджеру обновлений (там версия будет браться из ini файла, скачанного с сервера репозитория), это я про рабочий стол и иже с ним думаю.
    А вот сейчас тебя точно никто не понял, потому что опять таки вопросы нужно задавать грамотно.
  • Нет, стоп-стоп-стоп.
    По пунктам.
    1. Изображение.
    Требуется: включение изображения (файла something.png) внутрь исполняемой программы (аналогично понятию "ресурс" внутри exe в Windows). Т.е. чтобы изображение было внутри программы, а не находилось в виде отдельного файла.

    Вариант Димы я понял (и он понял мой вопрос) - он предлагает сделать так, как это сделано в Eolite. Я считаю такой вариант танцем с бубнами (либо хотелось бы хотя бы для начала получить тулзу, которая переведет картинку в последовательность байтов).

    Что предлагаешь ты мне осталось несколько не понятным. Компилироваться твой вариант, насколько я знаю, не будет, но что тогда, если не подключение png файла наравне с asm/inc/etc ты предлагаешь?

    3. Поля исполняемого файла.
    Я хочу, помимо менеджера обновлений, немного переделать рабочий стол и сделать _ярлыки_ к настоящим программам, а не так, как это сделано сейчас. Мою бодрую голову не покидает мысль о функции, аналогичной функции "Правая кнопка мыши по исполняемому файлу" -> Свойства. В Windows там могут быть указаны версия файла, автор, компания-разработчик, дата издания, ИКОНКА и т. д. Соответственно, для реализации подобного в Колибри, нужна возможность добавить подобную информацию в исполняемую программу (для начала хотя бы версию) и возможность извлечь эти данные и отобразить в окне другой программы (@fileabout если угодно).
  • Тот же самый include только в области данных, не?
  • А, вот теперь дошло, о чем шла речь.
    Щаз буду ковыряться с этим вопросом.
  • in code we trust
  • mike.dld, спасибо, то, что нужно!
    Теперь только осталось вывести картинку с помощью libimg и один из вопросов решен.
  • Такая идея была уже очень давно.
    viewtopic.php?f=26&t=1078
    Только реализации нет и по сей день...
  • Если посмотреть на размер приложения - запихивать в него иконку не наш путь. К тому же метод получается не гибкий. Гораздо лучше оставить под название иконки место и если иконка лежит рядом с файлом (в той-же директории), то постороннее приложение (менеджер файлов или еще какое) может использовать, если нет, то выведет свое. Можно даже не оставлять поле - просто обозвать файл с иконками также как называется основное приложение + ICO и договориться использовать такие условия только для этих целей.

    З.Ы. Разумеется автор программы - сам себе режиссер, но исходить нужно из практических соображений.
  • Mario, то, что ты говоришь актуально для иконок, которые обозначают типы файлов (лежат отдельно), но не для программ.
    Как минимум, иконка является неотъемлемой частью программы. Я насчитал 27 приложений, которые действительно важные, рабочие, более-менее проработанные (ну или вроде Animage - должны быть проработаны :D). Все остальное с точки юзера менее важно (а остаются приложения в 1-2 Кб, которые нужно либо удалять, либо объединять такую мелочевку, вроде gmon, cpu и т.д. и т.п. в полноценные программы). Если допустить, что каждое приложение весит 20 Кб (HTMLv больше будет, если его дописать до сколько-нибудь полноценного уровня, calc, heed, board, airc, calendar меньше), то получается примерно 600 Кб юзерских программ + 100 Кб всякого системного + 150 Кб ядро + 100 Кб либы + 50 Кб драйверы + 50 Кб шрифты + 100 Кб всякого (иконки к расширениям файлов, фоновое изображение, пара скинов). И это я ещё с запасом почти везде брал. Получается, что остается порядка 300 свободных Кб. Неужели нельзя из них забрать 54 Кб на иконки программ?
  • maximYCH wrote:Mario, то, что ты говоришь актуально для иконок, которые обозначают типы файлов (лежат отдельно), но не для программ.
    Как минимум, иконка является неотъемлемой частью программы. Я насчитал 27 приложений, которые действительно важные, рабочие, более-менее проработанные (ну или вроде Animage - должны быть проработаны :D). Все остальное с точки юзера менее важно (а остаются приложения в 1-2 Кб, которые нужно либо удалять, либо объединять такую мелочевку, вроде gmon, cpu и т.д. и т.п. в полноценные программы). Если допустить, что каждое приложение весит 20 Кб (HTMLv больше будет, если его дописать до сколько-нибудь полноценного уровня, calc, heed, board, airc, calendar меньше), то получается примерно 600 Кб юзерских программ + 100 Кб всякого системного + 150 Кб ядро + 100 Кб либы + 50 Кб драйверы + 50 Кб шрифты + 100 Кб всякого (иконки к расширениям файлов, фоновое изображение, пара скинов). И это я ещё с запасом почти везде брал. Получается, что остается порядка 300 свободных Кб. Неужели нельзя из них забрать 54 Кб на иконки программ?
    Зачем равняться на Windows? Вот в моем linux, к примеру, в elf-файлы не встроены никакие иконки, и слава Б-гу, потому что я обожаю менять иконки и темы раз в месяц.
    И, да, по поводу п.1 я имел в виду то же, что и Mario. Ничего никуда конвертировать не нужно.
  • maximYCH, объединение лаконичных монофункциональных программ в монстроподобные агрегаты было бы большой ошибкой.

    На самом деле, если бы каждой программе был присвоен некий номер, иконки могли бы содержать оный в наименовании себя, и лежать в некоторой директории. Тогда рабочий стол мог бы их находить, открывать, отображать.

    Встраивание в программу - кошмар и ужас на крыльях ночи. Какой формат использовать? Ах, ххх? А кому-то он не нравится. То есть, совершенно. А какого разрешения? А, хх*уу? А на моём мониторе это слишком мелко/крупно.

    P.S.: вот о чём следовало бы подумать, так это об описаниях программ, чтобы можно было производить поиск оных. Мне лично вообще иконки не будут нужны, если @menu позволит мне ввести в поле поиска название али кусочек описания, и увидеть скроллящийся список всех совпадений (например, введя «игр», увидать все игры и проигрыватели, как побочный эффект)
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Who is online

    Users browsing this forum: Yandex [Bot] and 20 guests