当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>一步一步实现MFC扩大DLL中导出类和对话框</b>[VC/C++编程]

赞助商链接



  本文“<b>一步一步实现MFC扩大DLL中导出类和对话框</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

假如要编写模块化的软件,就要对对动态链接库(DLL)有一定的理解,本人这段时间在改正从前的软件时,决意把反复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,若何实现MFC扩大DLL中导出类和对话框.

 1、成立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头文件:

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实现文件:
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()中增添以下代码:

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.

2、成立DLL 测试程序

步骤:

新建一个基于对话框的MFC利用程序,增添一按钮IDC_BUTTON1,并在按钮事件中增添如以下代码:
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>一步一步实现MFC扩大DLL中导出类和对话框</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .