0

我正在尝试加载一个简单的基于 C 的库接口,该接口包含几个函数,并使用 qt 作为模板库进行编译。当我按照标准方式加载库时,我的 QLibrary::load() 失败。这是代码:

    bool RecPluginMngr::loadLibrary(const QString &src)
{
    bool res = false;
    static QLibrary plugin(src);
    res = plugin.load();
    if (!res) {
        return res;
    }

    bool load_all_res = true;
    RecIface iface;
    iface.init = (init) plugin.resolve("init");
    // todo: err messages !!!

    if (iface.init == nullptr) {
        load_all_res &= false;
    }

    iface.get_data = (get_data) plugin.resolve("get_data");
    if (iface.get_data == nullptr) {
        load_all_res &= false;
    }

    iface.put_data = (put_data) plugin.resolve("put_data");
    if (iface.put_data == nullptr) {
        load_all_res &= false;
    }

    iface.put_ndata = (put_ndata) plugin.resolve("put_ndata");
    if (iface.put_ndata == nullptr) {
        load_all_res &= false;
    }
    // map them all
    m_plugins[src] = iface;
    return load_all_res;
}
4

0 回答 0