![]() |
|
![]() ![]() ![]() |
|
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Подскажите, есть ли какой-нибудь редактор/распаковщик/вьювер qt-ресурсов (бинарных *.rcc)? Или, в крайнем случае, подскажите где найти описание формата ресурсов чтоб можно было сделать свой распаковщик.
И ещё, может кто-нибудь выложить сам rcc.exe последней (4.7.1) версии? |
|||
|
||||
SABROG |
|
||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Сама утилита rcc не предоставляет возможности распаковать файлы ресурсов, однако в Qt есть метод
Который позволяет зарегистрировать ресурс и использовать файлы, которые в нем находятся. Думаю сохранить их через QFile не составит труда. |
||||
|
|||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Т.е. чтобы распаковать ресурс мне надо его вначале статически прилинковать к проекту а затем перекомпилировать его? А как-то динамически это можно сделать, чтоб я мог распаковывать все файлы в заданной директории по маске *.rcc?
Это сообщение отредактировал(а) zedx - 21.12.2010, 13:13 |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ничего линковать не нужно. Просто укажи путь к файлу. |
|||
|
||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Получилось, за единственным исключением, что не распаковались локализованные ресурсы (т.е. распаковались ресурсы только для текущей локали).
Это сообщение отредактировал(а) zedx - 21.12.2010, 16:18 |
|||
|
||||
zedx |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Пытаюсь прикрутить к rcc.exe функционал распаковки ресурсов, но сборка тормозит с ошибками undefined reference:
Т.е. не нравятся строчки:
Я что-то где-то не подключил? Если собирать проект самостоятельно, то всё компилируется без вопросов, хотя в итоге и получаем зависимость от длл-ок. Сам же rcc.exe, если компилировать без моей вставки, зависимостей не имеет. Т.е. rcc имеет какие-то хитрые настройки из-за которых и не хочет линковаться мой код? В аттаче код, что я подключаю. Это сообщение отредактировал(а) zedx - 23.12.2010, 10:19 Присоединённый файл ( Кол-во скачиваний: 35 ) ![]() |
||||||||
|
|||||||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
В общем, поступил наоборот - взял исходники rcc (голые *.cpp и *.h, без каких-либо настроек) и добавил их в свой проект. Вот тогда и скомпилировалось без ошибок.
В аттаче "расширенная" версия компилятора ресурсов (+ src) с дополнительным ключом -reverse, по которому производится распаковка всех бинарных (*.rcc) файлов ресурсов в текущей директории. Распакованные ресурсы сортируются по отдельным папочкам, в соответствии с именем исходного rcc файла. Дополнительно генерируются файлы *.qrc и файл make.bat для обратной сборки распакованных ресурсов в бинарные rcc файлы. Весь прежний функционал утилитки естественно сохранён. Присоединённый файл ( Кол-во скачиваний: 67 ) ![]() |
|||
|
||||
Malachi |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 13.4.2011 Репутация: нет Всего: нет |
Спасибо за полезную утилиту, но при использовании её возникли трудности. Если в самом *.rcc файле сами интересующие меня файлы (текстурки из одной игры) запрятаны слишком глубоко, то утилита их не воспринимает.
То есть если там один уровень вложения (resources.rcc\fonts\vera.ttf), то утилита его видит и извлекает. Если же уровней больше одного (resources.rcc\images\cards\image.png), то всё что я получаю на выходе - это пустую папку images\cards, без малейшего намёка на содержимое в ней. А содержимое должно быть, так как исходный файл весит многие мегабайты, а шрифты из всего этого на 600 Кб еле тянут. Собственно вопрос: есть ли какой-то спосбо расширить функционал утилиты, дабы можно было доставать файлы, запрятанные глубже одного уровня? Заранее спасибо. Это сообщение отредактировал(а) Malachi - 14.4.2011, 00:48 |
|||
|
||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Да, закрался небольшой бажек. Поправил.
Присоединённый файл ( Кол-во скачиваний: 251 ) ![]() |
|||
|
||||
p943845 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 1.3.2019 Репутация: нет Всего: нет |
Благодарю! ![]() |
|||
|
||||
zedx |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 29.11.2007 Репутация: нет Всего: нет |
Обновил утилиту до актуальной версии rcc (5.15.0) - добавилась поддержка бинарных форматов версий 2 и 3.
Бинарник и сорцы доступны на гитхабе: https://github.com/zedxxx/rccextended |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |