Название: Help. Работа Qt c ресурсами и dll Отправлено: cutwater от Сентября 01, 2007, 13:16 Доброго времени суток.
Интересует следующий вопрос. Я в программе делаю простенькую поддержку скинов и различных языков. Соответственно нужно вынести необходимые иконки в отдельный файл (пока что интересуют скины)... теперь вопросы. Если изображения хранятся в dll, как я могу их использовать при помощи Qt? Или может быть лучше организовать работу со скинами по другому? Заранее благодарен. Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: QCasper от Сентября 01, 2007, 13:25 Можешь, просто сделай в своей дллке функцию, которая будет возвращать картинку.
Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: cutwater от Сентября 01, 2007, 13:52 Объясню теперь нормально что мне нужно. Ибо раньше не сумел.
У меня есть dll. В ней хранятся png рисунки, string table.. ...и т.п. Как при помощи Qt загрузить динамически эту библиотеку. Получить из нее картинку. И загрузить ее в скажем Lable. То есть примерно виндовыми средствами это выглядело бы так.. Код: HMODULE hSkinLib = LoadLibrary("Skin.dll"); Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: QCasper от Сентября 01, 2007, 21:43 не знаю, на сколько тебя устроит этот метод, но я делаю так. Сначала загружаю дллку (QLibrary::load()), потом резолвю функцию, которая вернет мне картинку QLibrary::resolve(), и собственно всё. Подобну вещь как HICON hIcon = LoadIcon(hSkinLib, MAKEINTRESOURCE(101)); в Qt нельзя применить, насколько мне изестно. Хотя!! Можно попробовать просто после загрузки библиотеки (QLibrary::load()) попробовать вывести куда-нибудь картинку, которая находится в ресурсах дллки. То есть, если в ресурсе дллки (при условии, что используется система ресурсов Qt) есть картинка, и ты знаешь ее имя, к примеру :images/megaimage.png, то в основной проге можно попробовать вывести куда-нибудь QPixmap(":images/megaimage.png"). Теоретически может сработать, хотя я сам не пробовал. Я, повторяю, писал в дллке функцию, которая явно возвращала мне картинку.
Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: cutwater от Сентября 01, 2007, 22:55 Мне просто кажется это не самым лучшим выходом из положения. У меня есть просто длл в которой хранятся ресурсы и идентификаторы мне известны.. мне просто нужно выдернуть ресурс из длл.. хотя может быть я топчусь на одном месте...
Спасибо, буду пробовать. Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: QCasper от Сентября 02, 2007, 10:05 Мне просто кажется это не самым лучшим выходом из положения. У меня есть просто длл в которой хранятся ресурсы и идентификаторы мне известны.. мне просто нужно выдернуть ресурс из длл.. хотя может быть я топчусь на одном месте... Спасибо, буду пробовать. Впрочем тебе опять же никто не мешает использовать WinAPI совместно с Qt. Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: Lion от Сентября 02, 2007, 11:23 Для поддержки различных языков в Qt есть встроенные средства и хранить таблицы перевода в dll нет никакой необходимости. Для хранения картинок в dll необходимо сделать qt плагин, в классе плагина сделать публичную функцию типа
Код: QIcon getIcon(const QString &iconName) { return QIcon(QString(":/images/%1).arq(iconName)); } Название: Re: Help. Работа Qt c ресурсами и dll Отправлено: QCasper от Сентября 02, 2007, 20:28 Для поддержки различных языков в Qt есть встроенные средства и хранить таблицы перевода в dll нет никакой необходимости. Для хранения картинок в dll необходимо сделать qt плагин, в классе плагина сделать публичную функцию типа Код: QIcon getIcon(const QString &iconName) { return QIcon(QString(":/images/%1).arq(iconName)); } а я разве не то же самое советовал? |