Как я могу встроить ресурс 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) мне нужно было:

  1. включите файл qrc_RESOURCE_NAME.cpp в проект библиотеки (DLL) (в файле .pro) - он создается во время компиляции, поэтому вам, скорее всего, потребуется скомпилировать дважды (1-й (достаточно только qmake), чтобы сгенерировать этот файл qrc_RESOURCE_NAME.cpp, 2-й для компиляции с проектом)
  2. включите этот qrc_RESOURCE_NAME.cpp (прямо или косвенно) в проект вашего приложения (EXE)
  3. обычно используйте протокол qrc: /// (или короче : /) для загрузки ваших файлов

Для более подробной информации посетите ссылку, которую я разместил.

Другие вопросы по тегам