В ходе разработки менеджера обновлений возникли вопросы.
1. Можно ли встроить png (или любой другой графический файл) в приложение (аналог ресурсов в виндовском приложении), без особых танцев с бубнами?
2. Есть ли какая-либо библиотека для загрузки файла из сети? Я сейчас вроде прикрутил скачку файла через downloader, но хотелось бы освободиться от данной зависимости (ибо получится, как раньше было с sysxtree и copyr, кто знает - тот поймет).
3. Могу ли я каким-либо образом указать версию (к примеру, возможно другое поле, вроде "Разработчик" или "Адрес программы в Интернете", т.е. что угодно), а потом из другой программы узнать значение? Т.е. грубо говоря есть программа А, в которой зашито в качестве версии значение 0.4.5, а есть программа Б, которая имеет процедуру/функцию getappversion, которая возвращает значение версии для произвольного файла, в котором зашито такое значение? Если да - то как работает такая функция?
Разумеется, что речь идет о FASM.
Заранее благодарен.
Вопросы по разработке
1. Можно, внедрить как последовательность байтmaximYCH wrote:В ходе разработки менеджера обновлений возникли вопросы.
1. Можно ли встроить png (или любой другой графический файл) в приложение (аналог ресурсов в виндовском приложении), без особых танцев с бубнами?
2. Есть ли какая-либо библиотека для загрузки файла из сети? Я сейчас вроде прикрутил скачку файла через downloader, но хотелось бы освободиться от данной зависимости (ибо получится, как раньше было с sysxtree и copyr, кто знает - тот поймет).
3. Могу ли я каким-либо образом указать версию (к примеру, возможно другое поле, вроде "Разработчик" или "Адрес программы в Интернете", т.е. что угодно), а потом из другой программы узнать значение? Т.е. грубо говоря есть программа А, в которой зашито в качестве версии значение 0.4.5, а есть программа Б, которая имеет процедуру/функцию getappversion, которая возвращает значение версии для произвольного файла, в котором зашито такое значение? Если да - то как работает такая функция?
Разумеется, что речь идет о FASM.
Заранее благодарен.
2. Нет, нету (а жаль)
3. Для библиотеки - да. Для приложения - пока что нет
1) Можно так:
2) downloader не так уж и плох, если не нравится напиши свой.
3) Для этого делается опакечивание как например RPM в Linux. Пакет идет контейнером поверх бинарников и ресурсов. Это отдельная адская работа - Сизиф тому показатель.
http://ru.wikipedia.org/wiki/Сизиф_(репозиторий)
У меня большие сомнения что ты потянешь такую работу - тем более она никак не будет оплачиваться, а автоматизировать все не получится.
Code: Select all
include 'kakayato_hren_ot_maximYCHa.png'
3) Для этого делается опакечивание как например RPM в Linux. Пакет идет контейнером поверх бинарников и ресурсов. Это отдельная адская работа - Сизиф тому показатель.
http://ru.wikipedia.org/wiki/Сизиф_(репозиторий)
Т.е. такую базу нужно постоянно отслеживать, упаковывать новые (а главное только рабочие) версии и лишь тогда можно использовать.Сизиф (Sisyphus) — проект по разработке репозитория RPM-пакетов, один из 5 крупнейших в мире банков пакетов свободных программ.
Работу над Сизифом ведёт команда разработчиков ALT Linux Team, в которую входит более 150 участников из пяти стран мира.
У меня большие сомнения что ты потянешь такую работу - тем более она никак не будет оплачиваться, а автоматизировать все не получится.
1) Это такая тонкая издевка? Очевидно же, что оно не будет работать.
2) downloader не плох, но зависимость от программы - это плохо.
3) Вопрос не имел отношения к менеджеру обновлений (там версия будет браться из ini файла, скачанного с сервера репозитория), это я про рабочий стол и иже с ним думаю.
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 если угодно).
По пунктам.
1. Изображение.
Требуется: включение изображения (файла something.png) внутрь исполняемой программы (аналогично понятию "ресурс" внутри exe в Windows). Т.е. чтобы изображение было внутри программы, а не находилось в виде отдельного файла.
Вариант Димы я понял (и он понял мой вопрос) - он предлагает сделать так, как это сделано в Eolite. Я считаю такой вариант танцем с бубнами (либо хотелось бы хотя бы для начала получить тулзу, которая переведет картинку в последовательность байтов).
Что предлагаешь ты мне осталось несколько не понятным. Компилироваться твой вариант, насколько я знаю, не будет, но что тогда, если не подключение png файла наравне с asm/inc/etc ты предлагаешь?
3. Поля исполняемого файла.
Я хочу, помимо менеджера обновлений, немного переделать рабочий стол и сделать _ярлыки_ к настоящим программам, а не так, как это сделано сейчас. Мою бодрую голову не покидает мысль о функции, аналогичной функции "Правая кнопка мыши по исполняемому файлу" -> Свойства. В Windows там могут быть указаны версия файла, автор, компания-разработчик, дата издания, ИКОНКА и т. д. Соответственно, для реализации подобного в Колибри, нужна возможность добавить подобную информацию в исполняемую программу (для начала хотя бы версию) и возможность извлечь эти данные и отобразить в окне другой программы (@fileabout если угодно).
Тот же самый include только в области данных, не?
А, вот теперь дошло, о чем шла речь.
Щаз буду ковыряться с этим вопросом.
Щаз буду ковыряться с этим вопросом.
in code we trust
mike.dld, спасибо, то, что нужно!
Теперь только осталось вывести картинку с помощью libimg и один из вопросов решен.
Теперь только осталось вывести картинку с помощью libimg и один из вопросов решен.
Если посмотреть на размер приложения - запихивать в него иконку не наш путь. К тому же метод получается не гибкий. Гораздо лучше оставить под название иконки место и если иконка лежит рядом с файлом (в той-же директории), то постороннее приложение (менеджер файлов или еще какое) может использовать, если нет, то выведет свое. Можно даже не оставлять поле - просто обозвать файл с иконками также как называется основное приложение + ICO и договориться использовать такие условия только для этих целей.
З.Ы. Разумеется автор программы - сам себе режиссер, но исходить нужно из практических соображений.
З.Ы. Разумеется автор программы - сам себе режиссер, но исходить нужно из практических соображений.
Mario, то, что ты говоришь актуально для иконок, которые обозначают типы файлов (лежат отдельно), но не для программ.
Как минимум, иконка является неотъемлемой частью программы. Я насчитал 27 приложений, которые действительно важные, рабочие, более-менее проработанные (ну или вроде Animage - должны быть проработаны ). Все остальное с точки юзера менее важно (а остаются приложения в 1-2 Кб, которые нужно либо удалять, либо объединять такую мелочевку, вроде gmon, cpu и т.д. и т.п. в полноценные программы). Если допустить, что каждое приложение весит 20 Кб (HTMLv больше будет, если его дописать до сколько-нибудь полноценного уровня, calc, heed, board, airc, calendar меньше), то получается примерно 600 Кб юзерских программ + 100 Кб всякого системного + 150 Кб ядро + 100 Кб либы + 50 Кб драйверы + 50 Кб шрифты + 100 Кб всякого (иконки к расширениям файлов, фоновое изображение, пара скинов). И это я ещё с запасом почти везде брал. Получается, что остается порядка 300 свободных Кб. Неужели нельзя из них забрать 54 Кб на иконки программ?
Как минимум, иконка является неотъемлемой частью программы. Я насчитал 27 приложений, которые действительно важные, рабочие, более-менее проработанные (ну или вроде Animage - должны быть проработаны ). Все остальное с точки юзера менее важно (а остаются приложения в 1-2 Кб, которые нужно либо удалять, либо объединять такую мелочевку, вроде gmon, cpu и т.д. и т.п. в полноценные программы). Если допустить, что каждое приложение весит 20 Кб (HTMLv больше будет, если его дописать до сколько-нибудь полноценного уровня, calc, heed, board, airc, calendar меньше), то получается примерно 600 Кб юзерских программ + 100 Кб всякого системного + 150 Кб ядро + 100 Кб либы + 50 Кб драйверы + 50 Кб шрифты + 100 Кб всякого (иконки к расширениям файлов, фоновое изображение, пара скинов). И это я ещё с запасом почти везде брал. Получается, что остается порядка 300 свободных Кб. Неужели нельзя из них забрать 54 Кб на иконки программ?
Зачем равняться на Windows? Вот в моем linux, к примеру, в elf-файлы не встроены никакие иконки, и слава Б-гу, потому что я обожаю менять иконки и темы раз в месяц.maximYCH wrote:Mario, то, что ты говоришь актуально для иконок, которые обозначают типы файлов (лежат отдельно), но не для программ.
Как минимум, иконка является неотъемлемой частью программы. Я насчитал 27 приложений, которые действительно важные, рабочие, более-менее проработанные (ну или вроде Animage - должны быть проработаны ). Все остальное с точки юзера менее важно (а остаются приложения в 1-2 Кб, которые нужно либо удалять, либо объединять такую мелочевку, вроде gmon, cpu и т.д. и т.п. в полноценные программы). Если допустить, что каждое приложение весит 20 Кб (HTMLv больше будет, если его дописать до сколько-нибудь полноценного уровня, calc, heed, board, airc, calendar меньше), то получается примерно 600 Кб юзерских программ + 100 Кб всякого системного + 150 Кб ядро + 100 Кб либы + 50 Кб драйверы + 50 Кб шрифты + 100 Кб всякого (иконки к расширениям файлов, фоновое изображение, пара скинов). И это я ещё с запасом почти везде брал. Получается, что остается порядка 300 свободных Кб. Неужели нельзя из них забрать 54 Кб на иконки программ?
И, да, по поводу п.1 я имел в виду то же, что и Mario. Ничего никуда конвертировать не нужно.
maximYCH, объединение лаконичных монофункциональных программ в монстроподобные агрегаты было бы большой ошибкой.
На самом деле, если бы каждой программе был присвоен некий номер, иконки могли бы содержать оный в наименовании себя, и лежать в некоторой директории. Тогда рабочий стол мог бы их находить, открывать, отображать.
Встраивание в программу - кошмар и ужас на крыльях ночи. Какой формат использовать? Ах, ххх? А кому-то он не нравится. То есть, совершенно. А какого разрешения? А, хх*уу? А на моём мониторе это слишком мелко/крупно.
P.S.: вот о чём следовало бы подумать, так это об описаниях программ, чтобы можно было производить поиск оных. Мне лично вообще иконки не будут нужны, если @menu позволит мне ввести в поле поиска название али кусочек описания, и увидеть скроллящийся список всех совпадений (например, введя «игр», увидать все игры и проигрыватели, как побочный эффект)
На самом деле, если бы каждой программе был присвоен некий номер, иконки могли бы содержать оный в наименовании себя, и лежать в некоторой директории. Тогда рабочий стол мог бы их находить, открывать, отображать.
Встраивание в программу - кошмар и ужас на крыльях ночи. Какой формат использовать? Ах, ххх? А кому-то он не нравится. То есть, совершенно. А какого разрешения? А, хх*уу? А на моём мониторе это слишком мелко/крупно.
P.S.: вот о чём следовало бы подумать, так это об описаниях программ, чтобы можно было производить поиск оных. Мне лично вообще иконки не будут нужны, если @menu позволит мне ввести в поле поиска название али кусочек описания, и увидеть скроллящийся список всех совпадений (например, введя «игр», увидать все игры и проигрыватели, как побочный эффект)
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!
Who is online
Users browsing this forum: Yandex [Bot] and 20 guests