使用VS系列IDE开发客户端程序,经常会在不同项目中遇到相同的功能,可以考虑把功能独立出来,做为一个独立的功能模块,如封装成dll动态库。常见的功能模块如:串口通信、网口通信、文件处理、数据库操作、写运行日志等等,封装成MFX扩展动态库是最好的解决方案。

优点:统一接口,优化程序性能,降低模块件的耦合性,提升工作效率。


(相关资料图)

缺点:能想到的缺点可能是,不断优化/扩充功能,需考虑各版本动态库的维护问题。

工具/原料

一、创建MFC扩展动态库

  1. 1

    1.启动VS2008创建新项目,选择MFC->MFC DLL

    输入名称,点击确定。

    VS2008MFC扩展动态库与调用示例
  2. 2

    2.确定后,弹出项目属性向导,点击下一步:选择MFC扩展DLL

    VS2008MFC扩展动态库与调用示例
  3. 3

    3.为项目添加导出类的声明头文件:在解决方案上,右键->添加->新建项 选择头文件

    VS2008MFC扩展动态库与调用示例
  4. 4

    4.编写导出类声明

    #ifndefDLL_DEFINE_H

    #defineDLL_DEFINE_H

    classAFX_CLASS_EXPORTCMfxDll

    {

    public:

    CMfxDll();

    voidTestDlg();

    private:

    };

    #endif

  5. 5

    5.添加对话框资源:一个简单的求和对话框

    功能就是,点击计算按钮,计算操作数1+操作数2的和,并显示到界面上。

    VS2008MFC扩展动态库与调用示例
  6. 6

    6.编写对话框 计算按钮响应函数:

    UpdateData(TRUE);

    m_nSum=m_nA+m_nB;

    UpdateData(FALSE);

  7. 7

    7.编写扩展类实现代码:要include包含测试对话框的头文件。

    CMfxDll::CMfxDll()

    {

    }

    voidCMfxDll::TestDlg()

    {

    CDlgTestdlg;

    dlg.DoModal();

    }

  8. 8

    8.编译

    编译完成后生成MFC_DLL.lib、MFC_DLL.dll,加上DllDef.h头文件,一共3个有用文件。

    END

二、测试DLL

  1. 1

    1.创建项目,选择MFC基于对话框的项目

    VS2008MFC扩展动态库与调用示例
  2. 2

    2. 将MFC_DLL.lib、MFC_DLL.dll、DllDef.h 3个文件复制到TEST_DLL项目工程目录下

    右键项目属性,连接器->输入->附加依赖库: 输入MFC_DLL.lib

    添加->添加已有文件, 选择DllDef.h文件,添加到TEST_DLL项目中。

    VS2008MFC扩展动态库与调用示例
  3. 3

    3.验证DLL接口功能:

    在TEST_DLL主对话框上,添加一个按钮,双击按钮进入代码编辑

    在TEST_DLL CPP文件中,记得#include "DllDef.h"

    void CTEST_DLLDlg::OnBnClickedButton1(){CMfxDll dll;dll.TestDlg();}

    VS2008MFC扩展动态库与调用示例
  4. 4

    执行结果如下图:

    VS2008MFC扩展动态库与调用示例END

注意事项

经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。展开阅读全部

推荐内容