C++动态链接库封装

封装一个动态连接库的大致步骤

由于我们部门主要是利用MFC开发,所以我简单的做了一个关于MFC规则动态库的创建以及调用的文档,仅供参考。

  1. 新建MFC DLL项目(命名为NewDll)

 

2.分别为刚见得项目添加一个名为MyNewClass.h的头文件和一个名为MyNewClass.cpp 的源文件(如下图)

 

3.分别在头文件中和源文件中 写下如下代码

头文件

 

源文件

 

如果这个时候进行编译,那么将会出现如下错误

 

出现这个错误的原因是由于这个是一个导出文件,由于没有找到宏_MYNEWCLASS_EXPOTR_

解决以上错误的办法是点击 项目->属性->C/C++->预处理器->加上_MYNEWCLASS_EXPOTR_就可以解决问题了,在编译就成功了

下面是关于Dll的调用示范:

  1. 新建一个MFC应用程序NewDllTest

 

2.在新建的应用程序的对话框中加入2个按钮,分别为调用类和调用函数

 

先把前面生成的NewDll.dll和NewDll.lib拷贝到NewDllTest应用程序的目录下

在新建应用程序的源文件NewDllTestDlg.cpp 中先添加进来Dll的头文件,既如下路径

 

调用类的代码如下

 

调用函数的代码如下

 

执行完以上程序步骤后 编译 然后会发现如下错误

 

此错误出现的原因还是由于不识别函数,由于lib没有导入,有3中解决办法,第一种是在头文件中加上以下导入  #pragma comment(lib,"NewDll.lib") 第二种是在dll声明导入的同时将这句话加入。第3种是不用包含头文件,而去项目属性->链接器->输入->附加依赖项-> NewDll.lib  利用此3中方法后再编译都会编译成功

声明:以上纯属个人总结。如果疑惑请参考相关书籍

原文地址:https://www.cnblogs.com/CityLcf/p/10590665.html