C++ Visual Stdio生成库文件
对项目属性进行设置函数声明添加前缀对于windows系统,需要在头文件函数声明前加__declspec(dllexport)也可以将该前缀进行宏定义#if(defined_WIN32|| definedWINCE || defined__CYGWIN__)#defineMY_EXPORTS__declspec(dllexport)#elifdefined__GNUC__ && __
·
对项目属性进行设置

对于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();
更多推荐


所有评论(0)