Как я могу встроить ресурс Qt в файл.dll?
У меня есть сотни HTML-файлов в моем проекте, и я не хочу компилировать все эти HTML-файлы в.exe. Поэтому я хотел бы вместо этого встроить мои файлы HTML в файл.dll.
Как я могу встроить такой ресурс Qt в DLL-файл или другой тип скомпилированной библиотеки?
2 ответа
Собираетесь ли вы использовать dll только для html-файлов или она тоже будет содержать код? Если dll будет только для html-файлов, вместо этого создайте файл внешнего внешнего ресурса.
Скомпилируйте файл qrc во внешний файл ресурсов:
rcc -binary myresource.qrc -o myresource.rcc
Зарегистрируйте файл ресурса в вашем exe:
QResource::registerResource("/path/to/myresource.rcc");
Если вам любопытно (или кому-то еще нужно это решение), у меня была такая же проблема, за исключением того, что файл RCC не был для меня вариантом (мне нужно было быть в файле DLL).
Вот тема, которую я начал и решил
По сути, в моем проекте библиотеки (DLL) мне нужно было:
- включите файл qrc_RESOURCE_NAME.cpp в проект библиотеки (DLL) (в файле .pro) - он создается во время компиляции, поэтому вам, скорее всего, потребуется скомпилировать дважды (1-й (достаточно только qmake), чтобы сгенерировать этот файл qrc_RESOURCE_NAME.cpp, 2-й для компиляции с проектом)
- включите этот qrc_RESOURCE_NAME.cpp (прямо или косвенно) в проект вашего приложения (EXE)
- обычно используйте протокол qrc: /// (или короче : /) для загрузки ваших файлов
Для более подробной информации посетите ссылку, которую я разместил.