загрузка стандартных плагинов qt ВРУЧНУЮ и динамически

Кто-нибудь может привести пример КАК ЗАГРУЗИТЬ qjpeg или любой другой стандартный плагин QT вручную. Пожалуйста, дайте ПРИМЕР КОДА, а не ссылку на страницы qt, потому что я уже знаю следующие факты:

  1. Я не связываю qt как статическую библиотеку.
  2. Я знаю, как развертывать стандартные плагины qt (это автоматическая часть) 2.1. для qjpeg вы копируете qjpeg4.dll в ./imageformats/qjpeg4.dll как . являющийся базовым каталогом вашего приложения. но я хочу загрузить и использовать qjpeg lib.

as in

QPluginLoader loader("qjpeg4.dll");
if (loader.instance()) {
    cout << "ok" << endl;
} else {
    cout << "fail" << endl << loader.errorString().toStdString() << endl;
}


QList<QByteArray> list = QImageReader::supportedImageFormats();
for (int i = 0; i < list.size(); ++i) {
    f << list.at(i).constData() << std::endl;
}

это не печатает jpg, а изображения jpg не могут быть прочитаны и записаны. Может быть, если кто-то добавит сюда что-то еще, это сработает. а может я совсем не прав.


person yerlilbilgin    schedule 05.12.2010    source источник


Ответы (1)


Я этого не делал, но вот обоснованное предположение, вы, вероятно, делаете правильные вещи, загружая плагин, но, не идя обычным путем, QImageReader на самом деле не знает о доступности плагина. Если вам действительно нужно явно загрузить свой плагин, вы, вероятно, можете привести результат QPlugiLoader::instance() к QImageIOPlugin и использовать QIOImageHandler для чтения ваших jpg, но похоже, что вам придется отказаться от использования QImageReader

person Harald Scheirich    schedule 05.12.2010