一步一步实现MFC扩展DLL中导出类和对话框
当前位置:以往代写 > C/C++ 教程 >一步一步实现MFC扩展DLL中导出类和对话框
2019-06-13

一步一步实现MFC扩展DLL中导出类和对话框

一步一步实现MFC扩展DLL中导出类和对话框

假如要编写模块化的软件,就要对对动态链接库(DLL)有必然的相识,本人这段时间在修改以前的软件时,抉择把反复用的类和对话框做到DLL中,下面就从一个简朴的例子讲起,如何实现MFC扩展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头文件:

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。

二、成立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了。

    关键字:

在线提交作业