Qt调用C++动态链接库--导出类

经过多次尝试,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文件

Qt调用C++动态链接库--导出类_第1张图片

 4.在Qt的项目文件夹下粘贴.h文件

Qt调用C++动态链接库--导出类_第2张图片

 5.配置Qt库文件

Qt调用C++动态链接库--导出类_第3张图片

Qt调用C++动态链接库--导出类_第4张图片

 找到C++项目文件下的lib

Qt调用C++动态链接库--导出类_第5张图片

 Qt调用C++动态链接库--导出类_第6张图片

 下一步确定即可完成配置

代码实现

Qt调用C++动态链接库--导出类_第7张图片

 Qt调用C++动态链接库--导出类_第8张图片

 

 注意:Qt调用C++生成的动态链接库导出类,只能是多态类型的类

你可能感兴趣的:(C++,DLL,环境配置,c++)