封装一个动态连接库的大致步骤
由于我们部门主要是利用MFC开发,所以我简单的做了一个关于MFC规则动态库的创建以及调用的文档,仅供参考。
- 新建MFC DLL项目(命名为NewDll)
2.分别为刚见得项目添加一个名为MyNewClass.h的头文件和一个名为MyNewClass.cpp 的源文件(如下图)
3.分别在头文件中和源文件中 写下如下代码
头文件
源文件
如果这个时候进行编译,那么将会出现如下错误
出现这个错误的原因是由于这个是一个导出文件,由于没有找到宏_MYNEWCLASS_EXPOTR_
解决以上错误的办法是点击 项目->属性->C/C++->预处理器->加上_MYNEWCLASS_EXPOTR_就可以解决问题了,在编译就成功了
下面是关于Dll的调用示范:
- 新建一个MFC应用程序NewDllTest
2.在新建的应用程序的对话框中加入2个按钮,分别为调用类和调用函数
先把前面生成的NewDll.dll和NewDll.lib拷贝到NewDllTest应用程序的目录下
在新建应用程序的源文件NewDllTestDlg.cpp 中先添加进来Dll的头文件,既如下路径
调用类的代码如下
调用函数的代码如下
执行完以上程序步骤后 编译 然后会发现如下错误
此错误出现的原因还是由于不识别函数,由于lib没有导入,有3中解决办法,第一种是在头文件中加上以下导入 #pragma comment(lib,"NewDll.lib") 第二种是在dll声明导入的同时将这句话加入。第3种是不用包含头文件,而去项目属性->链接器->输入->附加依赖项-> NewDll.lib 利用此3中方法后再编译都会编译成功
声明:以上纯属个人总结。如果疑惑请参考相关书籍