使用VS系列IDE开发客户端程序,经常会在不同项目中遇到相同的功能,可以考虑把功能独立出来,做为一个独立的功能模块,如封装成dll动态库。常见的功能模块如:串口通信、网口通信、文件处理、数据库操作、写运行日志等等,封装成MFX扩展动态库是最好的解决方案。
优点:统一接口,优化程序性能,降低模块件的耦合性,提升工作效率。
缺点:能想到的缺点可能是,不断优化/扩充功能,需考虑各版本动态库的维护问题。
例子使用VS2008测试。
一、创建MFC扩展动态库
1.启动VS2008创建新项目,选择MFC->MFC DLL
输入名称,点击确定。
2.确定后,弹出项目属性向导,点击下一步:选择MFC扩展DLL
3.为项目添加导出类的声明头文件:在解决方案上,右键->添加->新建项 选择头文件
4.编写导出类声明
#ifndef DLL_DEFINE_H
#define DLL_DEFINE_H
class AFX_CLASS_EXPORT CMfxDll
{
public:
CMfxDll();
void TestDlg();
private:
};
#endif
5.添加对话框资源:一个简单的求和对话框
功能就是,点击计算按钮,计算操作数1+操作数2的和,并显示到界面上。
6.编写对话框 计算按钮响应函数:
UpdateData(TRUE);
m_nSum = m_nA + m_nB;
UpdateData(FALSE);
7.编写扩展类实现代码:要include包含测试对话框的头文件。
CMfxDll::CMfxDll()
{
}
void CMfxDll::TestDlg()
{
CDlgTest dlg;
dlg.DoModal();
}
8.编译
编译完成后生成 MFC_DLL.lib、MFC_DLL.dll,加上DllDef.h头文件,一共3个有用文件。
二、测试DLL
1.创建项目,选择MFC基于对话框的项目
2. 将MFC_DLL.lib、MFC_DLL.dll、DllDef.h 3个文件复制到TEST_DLL项目工程目录下
右键项目属性,连接器->输入->附加依赖库: 输入MFC_DLL.lib
添加->添加已有文件, 选择DllDef.h文件,添加到TEST_DLL项目中。
3.验证DLL接口功能:
在TEST_DLL主对话框上,添加一个按钮,双击按钮进入代码编辑
在TEST_DLL CPP文件中,记得 #include "DllDef.h"
void CTEST_DLLDlg::OnBnClickedButton1()
{
CMfxDll dll;
dll.TestDlg();
}
代码编写完成,编译运行TEST_DLL,点击DLL按钮如下图所示:
优快云下载链接:
http://download.youkuaiyun.com/detail/shortcoder/9589144