1.接口文件hello.h
//#pragma once
#ifndef HELLO_H
#define HELLO_H
#define FENGZHUANGCPP_API __declspec(dllexport)
class FENGZHUANGCPP_API Face2
{
public:
static Face2* CreateFace2();
virtual void Init2() = 0;
virtual void InitAdd2() = 0;
virtual int InitAdd2(int a, int b) = 0;
virtual int main2(int argc, char* argv[]) = 0;
};
#endif // !INTERFACE_H
2.接口的实现文件hello.cpp
#include "qtwidgetsapplication2.h"
#include <QtWidgets/QApplication>
#include <iostream>
#include"hello.h"
using namespace std;
class Hello2 : public Face2
{
public:
virtual void Init2();
virtual void InitAdd2();
virtual int InitAdd2(int a, int b);
int main2(int argc, char* argv[]);
};
void Hello2::Init2()
{
std::cout << "我是Init2\n";
}
void Hello2::InitAdd2()
{
std::cout << "我是InitAdd2\n";
}
int Hello2::InitAdd2(int a, int b)
{
return a+b;
}
Face2* Face2::CreateFace2()
{
return new Hello2();
}
int Hello2::main2(int argc, char* argv[])
{
QApplication a(argc, argv);
QtWidgetsApplication2 w;
w.show();
return a.exec();
}
//int main(int argc, char* argv[])
//{
// QApplication a(argc, argv);
// QtWidgetsApplication2 w;
// w.show();
// return a.exec();
//}
3.配置输出文件.dll
4.生成
5.整理库文件
6.将dll当成可执行程序,为其配置依赖文件 ,qt为例
打开qt的命令环境
windeployqt.exe C:\Users\63532\Desktop\dll5\QtWidgetsApplication2.dll
7.将生成的文件放到debug输出目录下,即exe
运行结果:成功调用了QT的界面