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

使用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按钮如下图所示:



CSDN下载链接:

http://download.csdn.net/detail/shortcoder/9589144

一个功能强大的MFC界面处理扩展库:CJ60Lib 这是从网上搜集的一个扩展库,把它分享给大家! 简介: CJ60Lib是基于MFC基础之上的一个扩展库,主要是改进MFC的下述类: CCJButton - ( CJButton.cpp and CJButton.h )对CButton的改进。 CCJComboBox - ( CJComboBox.cpp and CJComboBox.h )对CComboBox的改进。 CCJControlBar - ( CJControlBar.cpp and CJControlBar.h )对CControlBar的改进。 CCJFrameWnd - ( CJFrameWnd.cpp and CJFrameWnd.h ) CCJMDIFrameWnd - ( CJMDIFrameWnd.cpp and CJMDIFrameWnd.h ) CCJDockBar - ( CJDockBar.cpp and CJDockBar.h ) 这些类重载了缺省的主框架布局,以增加3D效果到工具条。为了使用这些类,仅将 CFrameWnd 改为 CCJFrameWnd,其中,CMainFrame 包含在 Mainfrm.h文件中,(对于MDI,采用CCJMDIFrameWnd)。 CCJOutlookBar - ( CJOutlookBar.cpp and CJOutlookBar.h )新增类,用于实现Outlook中的工具条。 CCJPagerCtrl - ( CJPagerCtrl.cpp and CJPagerCtrl.h )新增类,用于设置标签视或者对话框。 CCJTabCtrlBar - ( CJTabCtrlBar.cpp and CJTabCtrlBar.h )新增类。 CCJToolBar - ( CJToolBar.cpp and CJToolBar.h )对CToolBar类的改进。 CCoolMenuManager -( CoolMenu.cpp, Emboss.cpp and CoolMenu.h ) CSubclassWnd -( Subclass.cpp and Subclass.h ) 新增类,用于改进已有的菜单。 CFlatToolBar - ( FlatBar.cpp and FlatBar.h ) Obsolete with VC 6.0 CModuleVersion - ( ModulVer.cpp and ModulVer.h ) 这是CCJToolBar的基类。 CCoolBar, CRebarInfo - ( CoolBar.cpp and CoolBar.h ) Obsolete with VC 6.0 新增类,用于实现Internet Explorer 4风格的工具条。 CHyperLink - ( HyperLink.cpp and HyperLink.h ) 超链接控件。 使用方法: 在Project Settings中选择General标签,Microsoft Foundation Class设置为 Use MFC in a shared DLL。 在Project Settings中选择Link标签,设置Category为Input,增加../Lib到Additional Library Path。 在Link标签中,改变Category为General,Output Name (所有配置)设置为../Lib。 选择C/C++标签,改变Category为Preprocessor,增加../Include到Additional Include Directories. 最后一步是添加下面两行代码到StdAfx.h头文件中: #define MFCX_PROJ #include 为了能静态链接到CJ60Lib,需要做下面修改: 在project settings对话框中,选择General标签,确保Microsoft Foundation Class设置为Use MFC in a static library。 添加下面代码到StdAfx.h 头文件,其将使库静态链接到应用程序: #define MFCXLIB_STATIC #define MFCX_PROJ #include
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值