248上位机VC MFC导出动态库自定义封装类
248上位机VC MFC导出动态库自定义封装类 功能展示 在使用第三方产品时,比如使用固高公司的运动卡就得使用第三方的动态库文件,会发现动态库文件提供完整的类供用户使用,我们当前例程也建立一动态库工程,在内建立自己的功能类,然后再将整个类全部导出供用户使用,效果如图,图为新建工程对动态库导出类的使用,点击调用动态库函数,可调用动态库对外类的成员函数; 要点提示 类的定义一般形式为class CMath动态库里类如需导出改形式为class__declspec(dllexport)Cmath,导出的类成员函数及变量遵循一般类的规则; 实现功能 1.新建基于WIN32的空动态链接库工程; 2.新建一头文件ExportClassDll,添加一新类class __declspec(dllexport)Cmath{} 再添加三个类型的成员函数 class __declspec(dllexport)CMath { private: int Add(int a,intb); protected: int Subtract(inta,int b); public: int Multiply(inta,int b);
}; 3.新一源文件ExportClassDll,实现前面新建类的三个成员函数 - #include "ExportClassDll.h"
- int CMath::Add(int a,int b)
- {
- return a+b;
- }
- int CMath::Subtract(int a,int b)
- {
- return a-b;
- }
- int CMath::Multiply(int a,int b)
- {
- return a*b;
- }
复制代码4,新建一基于对话框的工程,用于调用动态库的导出类,新动态库工程根目录三文件ExportClassDll.hExportClassDll.lib.ExportClassDll.dll复制到对话框工程根目录 5.包含进动态库的头文件与库文件 #include"ExportClassDll.h" #pragma comment(lib,"ExportClassDll.lib") 5.拖拽一编辑框ID为IDC_EDIT,一按钮关联函数测试动态库导出类的成员 函数 - void CGkbc8Dlg::OnButton1()
- {
- CString sText;
- // sText.Format("%d",m_Math.Add(1,2));//不能访问私有
- // sText.Format("%d",m_Math.Subtract(10,5));//不能访问保护
- sText.Format("%d",m_Math.Multiply(5,5));
- SetDlgItemText(IDC_EDIT1,sText);
- }
复制代码我们来演示下功能实现的整个过程
|