源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

MFC扩展DLL中导出类和对话框的实现方法

  • 时间:2021-03-02 20:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:MFC扩展DLL中导出类和对话框的实现方法
本文实例讲述了MFC扩展DLL中导出类和对话框的实现方法,分享给大家供大家参考。具体实现方法如下: 一般来说,如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 程序运行结果如下图所示: [img]http://files.jb51.net/file_images/article/201410/20141023103702267.jpg?2014923103714[/img] [b]一、创建MFC扩展DLL[/b]   步骤:   运行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头文件:
[u]复制代码[/u] 代码如下:
class CDogClass : public CObject {  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实现文件:
[u]复制代码[/u] 代码如下:
CDogClass::CDogClass() {  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()中添加如下代码:
[u]复制代码[/u] 代码如下:
CDlgDog dlg; 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。 [b]二、建立DLL 测试程序[/b]   步骤:   新建一个基于对话框的MFC应用程序,添加一按钮IDC_BUTTON1,并在按钮事件中添加如如下代码:
[u]复制代码[/u] 代码如下:
void CTestExportClassDlg::OnButton1() {  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了。    [b]补充:[/b] 在vc6.0环境下调试时,上面步骤中 Insert-> Resouce...修改为: Insert——>Form 希望本文所述对大家的MFC程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部