对项目属性进行设置

对于QT而言,需要将.pro项目文件中的TEMPLATE = app改为TEMPLATE = lib。

 

函数声明添加前缀

对于windows系统,需要在头文件函数声明前加__declspec(dllexport)

也可以将该前缀进行宏定义

#if(defined _WIN32 || defined WINCE || defined __CYGWIN__)
#define MY_EXPORTS __declspec(dllexport)
#elif defined __GNUC__ && __GNUC__ >= 4
#define MY_EXPORTS __attribute__ ((visibility ("default")))
#endif

DLL中不仅可以导出函数和变量,也可以导出C++类。只需要在导出类名前关键字class后加上_declspec(dllexport)

DLL简单导出类代码

class _declspec(dllexport) Stu
{
public:
    Stu(int a);
    void print();
 
private:
    int _a;
};

接口封装

为了实现封装成dll的时候只要一个头文件,一个dll,一个lib,需要另外一个接口头文件,提供对外接口,内部实现放在cpp或者内部头文件里面。

test.h

#include “interface.h”
void function();

test.c

#include “test.h”
void function()
{
// do something
}

interface.h

__declspec(dllexport) void function();

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐