创建一个头文件qtclasslibrary1_global.h
#pragma once
#include <QtCore/qglobal.h>
#ifndef BUILD_STATIC
# if defined(QTCLASSLIBRARY1_LIB)
# define QTCLASSLIBRARY1_EXPORT Q_DECL_EXPORT
# else
# define QTCLASSLIBRARY1_EXPORT Q_DECL_IMPORT
# endif
#else
# define QTCLASSLIBRARY1_EXPORT
#endif
dll部分
引用上文头文件
#include "qtclasslibrary1_global.h"
extern "C" Q_DECL_EXPORT void check_Register_new(bool enable);//声明库函数
class QTCLASSLIBRARY1_EXPORT XYAiClassify
{
public:
XYAiClassify();
public:
static bool enable_Ai;
}
void check_Register_new(bool enable)//定义库函数
{
XYAiClassify::enable_Ai = enable;
}
引用dll部分:
调用该静态库
typedef void (*check_Register_new)(bool Aienable);//声明要调用的库函数的参数
class DynamicCallAi : public QObject
{
Q_OBJECT
public:
DynamicCallAi(bool isUseGPU,QObject * parent = nullptr);
void _check_register_new(bool enable);//用该函数调用调用库中对应函数
private:
check_Register_new check_register_new;
}
bool DynamicCallAi::UseAiDll()
{
QLibrary _cls_DynamciCallLib;
_cls_DynamciCallLib.setFileName("dllpaht");//库地址
if (!_cls_DynamciCallLib.load()) {
return false;
}
check_register_new = (check_Register_new)_cls_DynamciCallLib.resolve("checkRegister_new");//绑定checkRegister_new函数到check_register_new 中
if (!check_register_new) {
return false;
}
}
void DynamicCallAi::_check_register_new(bool enable)
{
return check_register_new(enable);
}