经过多次尝试,Qt调用C++生成的动态链接库导出类,只能是多态类型的类
导出DLL的方法参考这篇文章C++生成DLL动态链接库
1.生成导出类
#pragma once
#ifndef DLL_IMPORT
#define API __declspec(dllexport)
#else
#define API __declspec(dllimport)
#endif
class API InterfaceClass
{
public:
virtual int add(int a, int b) = 0;
};
class ExportedClass :public InterfaceClass
{
public:
virtual int add(int a, int b) override;
};
extern "C" API InterfaceClass * getInstance();
2. .CPP实现.h接口
#include"DLL11.h"
int ExportedClass::add(int a, int b)
{
return a + b;
}
InterfaceClass* getInstance()
{
InterfaceClass* ptr = new ExportedClass();
return ptr;
}
3.在项目文件夹下找到.h文件
?4.在Qt的项目文件夹下粘贴.h文件
?5.配置Qt库文件
?找到C++项目文件下的lib
?
?下一步确定即可完成配置
代码实现
?
?
?注意:Qt调用C++生成的动态链接库导出类,只能是多态类型的类
|