本篇博客介绍了如何创建dll工程,生成一个dll,并提供调用例子,这里下载
一个dll工程, 给用户的文件有
//dll文件,包含程序主体
dll_demo.dll
//lib文件,包含接口信息
dll_demo.lib
//h文件,包含接口声明
dll_demo.h
ps:c++调用,如果不提供lib文件,用户调用的时候需要使用LoadLibrary方法自行加载. c#或java调用时,用户需要根据h文件自己写对应的加载函数.
dll工程包含如下文件:
//h文件,包含接口声明
dll_demo.h
//程序实现文件
dll_demo.cpp
如果仅导出函数
dll_demo.h
#define DECLDIREXP __declspec(dllexport)
#define DECLDIRIMP __declspec(dllimport)
#ifdef _DLL_PROJECT
int DECLDIREXP myadd();
#else
int DECLDIRIMP myadd();
#endif
ps:在属性-->C/C++-->预处理器页面中预处理定义中定义_DLL_PROJECT
dll_demo.cpp
#include "dll_demo.h"
int DECLDIREXP myadd()
{
return 3;
}
如果导出类
dll_demo.h
#define DECLDIREXP __declspec(dllexport)
#define DECLDIRIMP __declspec(dllimport)
#ifdef _MYDLL
class DECLDIREXP xyz
{
public:
void printing();
};
#else
class DECLDIRIMP xyz
{
public:
void printing();
};
#endif
ps:在属性-->C/C++-->预处理器页面中预处理定义中定义_DLL_PROJECT
dll_demo.cpp
#include "dll_demo.h"
#include <iostream>
void xyz::printing()
{
std::cout << "hello,kids! " << std::endl;;
}
结尾:
拒绝白嫖,至少点赞.