Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Yurko_San от Май 12, 2017, 15:41



Название: Как сделать, чтобы приложение не валилось, если нет dll?
Отправлено: Yurko_San от Май 12, 2017, 15:41
Добрый вечер!

Я использую libcurl.dll в проекте, но она используется редко. Не подскажите, как сделать так, чтобы при отсутствии этой dll приложение не валилось, а выдавало предупреждение и продолжало работать с ограниченной функциональностью? Спасибо!

dll подключаю так:

win32: {
    win32-msvc*: error("Doesn't support Microsoft Visual Studio compiler! Please use MinGW GCC.")
    QT += axcontainer

    SOURCES += \
        src/tools/msexcel.cpp \
        src/devices/CashDevice/shtrihfrkdriver_win.cpp \
        src/services/idle/idle_win.cpp

    HEADERS += \
        src/tools/msexcel.h

    CONFIG(release, debug|release): LIBS += -L$$PWD/lib/ncreport/lib/ -lNCReport2
    CONFIG(debug, debug|release): LIBS += -L$$PWD/lib/ncreport/lib/ -lNCReportDebug2

    DEFINES += USE_ACTIVEX
    LIBS += -lwinspool \
            -L$$PWD/3dparty/curl-7.54.0/lib/ -lcurldll
    DEFINES += CURL_STATICLIB
    INCLUDEPATH += $$PWD/3dparty/curl-7.54.0/include
}


Название: Re: Как сделать, чтобы приложение не валилось, если нет dll?
Отправлено: Пантер от Май 12, 2017, 15:45
Придется грузить в рантайме. Читай http://doc.qt.io/qt-5/qlibrary.html


Название: Re: Как сделать, чтобы приложение не валилось, если нет dll?
Отправлено: Igors от Май 13, 2017, 07:59
Или линковать weak (в MSVC "delay loaded dll")