我正在尝试加载一个简单的基于 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;
}