VS2017 DLL动态库使用教程【四】使用头文件

如何让我们的dll程序也能像<stdio.h>一样让别人使用呢?

很简单,我们需要先新建两个文件。

其中mydll.cpp和mydll.h都是需要你在dll项目中新建的,如果你不知道怎么新建一个dll项目,请阅读本教程第一章。

建立完成后,我们首先写mydll.h,代码如下:

#ifndef  MYDLL_EXPORTS //条件编译指令,判断是否定义了 MYDLL_EXPORTS

#define MYDDLL _declspec(dllexport) //如果定义了,MYDDLL宏定义为如下
#else
#define MYDDLL _declspec(dllimport) //没有定义,MYDDLL宏定义为如下
#endif

MYDDLL int add(int a, int b); //头文件

mydll.cpp如下

#include "mydll.h"
#define MYDLL_EXPORTS //这里定义了MYDLL_EXPORTS 触发myddll.h的条件编译

int add(int a, int b)
{
	return a + b;
}

在DLL有一个原则,DLL项目中,函数声明为_declspec(dllexport)

而APP(使用DLL的程序)函数声明为_declspec(dllimport)

所以我们使用条件编译指令,这样DLL定义MYDLL_EXPORTS这个宏,条件编译就把MYDLL声明_declspec(dllexport) 。

使用DLL的程序没有定义MYDLL_EXPORTS,条件编译就把MYDLL声明_declspec(dllimport)。

如果不明白请配合阅读上边的代码。


在你的项目中使用头文件

在DLL目录下找到三个文件,"mydll.h","DLL_1.lib","DLL_1.dll",具体名称以你项目命名为准。

也就是一个头文件,一个lib,一个dll,一般lib和dll默认在debug目录下。


然后新建一个文件夹,名称随意,但是要建两个子文件夹,分别是"bin","include"

我把他建在d盘下,名称为mydll


然后把头文件放到include,lib和dll放到bin里




然后设置你要使用这个dll程序的属性,选择VC++目录,包含目录设为上边新建的include,库目录设为bin

点击这个添加



代码与运行结果如下,值得注意的是,仍然需要#pragma comment(lib,"DLL_1.lib") 否则还是找不到函数


猜你喜欢

转载自blog.csdn.net/nullccc/article/details/80959447
今日推荐