1.新建QT动态连接库,选择QT Class Library
2.我修改了_global的内容,新建后自带的无法导出函数:
3. .h文件新增接口定义:
4. .cpp文件:
5.查看生成的动态链接库:如图所示的接口才可以使用QLibrary的resolve方法调用;
注意导出时,一定要写extern “C” ,不加extern “C” 的情况下函数名是??函数名@XXX的方式;
调用时:
动态加载:
//调用dll的resolve功能函数
template<typename Func>
bool resolveFunction(Func& f, const char* name) {
f = (Func)m_pLib->resolve(name); //把名为nanme的功能函数指针传递给对象功能函数f
if (nullptr == f) {
qDebug() << "resolve function " << name << "failed";
return false;
}
qDebug() << "resolve function " << name << "success";
return true;
}