MFC扩展DLL中导出类和对话框的实现方法
本文实例讲述了MFC扩展DLL中导出类和对话框的实现方法,分享给大家供大家参考。具体实现方法如下:
一般来说,如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。
程序运行结果如下图所示:
一、创建MFC扩展DLL
步骤:
运行Visual Studio 6.0->File->New...->Projects;
选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击“下一步”;
选择Mfc Extension DLL (using share MFC DLL) 单击“finish”;
以上完成建立扩展DLL的框架,下面接着建立输出类:
Insert-> New Class...在打开的对话框中,"Class Type" 选择"Generic Class",Class Name 中输入
CDogClass(当然你可以用其它的名称,我喜欢小狗,所有用它了,在"Base Class"下输入CObject,然后"OK";
为类添加两个测试用的变量 int m_nNum;CString m_sData;完全的类信息如下:
DogClass.h头文件:
{
private :
int m_nNum;
CString m_sData;
public:
int ShowDlg();
void Init();
CDogClass();
virtual ~CDogClass();
void SetNum(int num) { m_nNum = num;};
int GetNum() { return m_nNum; };
void SetData(CString data) { m_sData = data;};
CString GetData() { return m_sData; };
};
DogClass.cpp实现文件:
{
Init();
}
CDogClass::~CDogClass()
{}
void CDogClass::Init()
{
m_nNum = 0;
m_sData = "";
}
编辑DogClass.h头文件修改下面一行;class AFX_EXT_CLASS CDogClass : public CObject
以上完成类的建立,下面建立输出对话框;Insert-> Resouce...新建立一个对话框,添加两个编辑框IDC_EDIT1,IDC_EDIT2,然后建立CDlgDog对话框类并为两编辑框添加int m_nNum和CString m_sData的变量。
在DogClass.cpp的#include "DogClass.h"下加入#include "DlgDog.h"
在DogClass类中添加int ShowDlg();函数用来调用对话框,并在int CDogClass::ShowDlg()中添加如下代码:
dlg.m_nNum = GetNum();
dlg.m_sData = GetData();
if (IDOK==dlg.DoModal())
{
SetNum(dlg.m_nNum);
SetData(dlg.m_sData);
return 1;
}
return 0;
然后编译Dll,会发现有几个错误,不用怕,好解决的,首先,去掉DlgDog.cpp中的 #include “/ add additional includes here”这一行;其次,在stdax.h中加入include "resource.h",再编译,OK。
二、建立DLL 测试程序
步骤:
新建一个基于对话框的MFC应用程序,添加一按钮IDC_BUTTON1,并在按钮事件中添加如如下代码:
{
CDogClass dog;
dog.Init();
if (dog.ShowDlg()!=0)
{
CString str;
str.Format("Num is: %d Data is: %s" dog.GetNum(), dog.GetData());
AfxMessageBox(str);
}
}
从ExportClass文件目录拷贝DogClass.h和ExportClass.lib文件到测试程序目录下;
在TestExportClassDlg.cpp中加入#include “DogClass.h”行;往连接程序的导入库中添加ExportClass.lib,在VS的Project->Settings下的Setting For选择All Configuration.,然后在下面的页面Object/Library Conttrol中加入ExportClass.lib;
别忘了把ExportClass.dll复制到系统目录或当前应用程序目录;然后编译就OK了。
补充:
在vc6.0环境下调试时,上面步骤中 Insert-> Resouce...修改为: Insert——>Form
希望本文所述对大家的MFC程序设计有所帮助。
相关文章
- 新旧MFC版本实现CEdit透明的2种方法的实例代码,需要的朋友可以参考一下...2020-04-25
- 这篇文章主要为大家详细介绍了MFC实现连连看游戏之消子算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要介绍了MFC实现全屏功能的代码,对于学习MFC有一定的借鉴价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家详细介绍了VS2019以及MFC的安装教程,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
- 这篇文章主要介绍了MFC控件中CListCtrl的应用方法,包括了针对表格的一些操作,是MFC中比较重要的一个控件类,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了MFC之ComboBox控件用法,包括了ComboBox控件常见的各类用法,非常具有实用价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C++中MFC Tab Control控件的使用详解的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了C++ 关于MFC多线程编程的注意事项的相关资料,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了MFC创建右键弹出菜单的方法,较为详细的分析了创建菜单资源及视类添加WM_RBUTTONDOWN消息的实现方法,是非常实用的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了构建mfc窗体的简单示例,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家详细介绍了MFC自绘Button按钮分析和实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 这篇文章主要为大家介绍了MFC实现简单的计算器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助...2021-08-31
- 这篇文章主要介绍了MFC设置对话框焦点的方法简述,主要讲述了两种实现方法,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了mfc入门教程之通过控制变量制作计算器,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了MFC命名规则,对于初学者而言需要牢固掌握这类规则,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了MFC绘制不规则窗体的方法,涉及MFC窗体操作的相关技巧,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了MFC扩展DLL中导出类和对话框的实现方法,详细讲述了实现扩展DLL中导出类和对话框的具体步骤与方法,具有不错的实用价值,需要的朋友可以参考下...2020-04-25
- 这篇文章主要介绍了mfc文件操作CFile类之创建文件的方法,需要的朋友可以参考下...2020-04-25
- 这篇文章主要为大家详细介绍了MFC串口通信发送16进制数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-04-25
- 本文主要介绍了vs2019 MFC实现office界面的画图小项目,对大家入门有一定的帮助,需要的朋友们下面随着小编来一起学习学习吧...2021-06-07