If you want to write modular software, you need to have a certain understanding of dynamic link libraries (DLLs), I this time in the modification of the previous software, decided to reuse the class and dialog box to do the DLL, the following from a simple example, how to implement the MFC extension DLL Export classes and dialog boxes.
First, create an MFC extension DLL
Steps:
Run Visual Studio 6.0->file->new...->projects;
Select MFC AppWizard (DLL), enter Exportclass under project name on the right, and click Next.
Select the MFC Extension DLL (using share MFC DLL) click Finish;
This completes the framework for establishing the extension DLL, and then builds the output class:
Insert-> New Class ... In the Open dialog box, "Class Type" selects "Generic Class", and Class Name enters
Cdogclass (Of course you can use other names, I like puppies, all with it, under "Base Class" input CObject, and then "OK";
Add two test variables int m_nnum for the class; CString M_sdata; The complete class information is as follows:
DogClass.h header file:
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 implementation file:
Cdogclass::cdogclass ()
{
Init ();
}
Cdogclass::~cdogclass ()
{
}
void Cdogclass::init ()
{
M_nnum = 0;
M_sdata = "";
}
Edit the DogClass.h header file to modify the following line;
Class Afx_ext_class Cdogclass:public CObject
The above completion class establishment, below establishes the output dialog box;
Insert-> resouce ... Create a new dialog box, add two edit boxes Idc_edit1,idc_edit2, and then create the Cdlgdog dialog class and add the int m_nnum and CString m_sdata variables to the two edit box.
Add #include "DlgDog.h" under DogClass.cpp's #include "DogClass.h"
In the Dogclass class, add the int Showdlg () function to invoke the dialog box and add the following code to the 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;
Then compile the DLL, you will find that there are a few errors, do not fear, good solution,
First of all, remove the #include in DlgDog.cpp "\ Add additional includes here", and secondly, add include "resource.h" in Stdax.h, then compile, OK.
Second, the establishment of DLL test procedures
Steps:
Create a new MFC application based on the dialog box, add a button idc_button1, and add the following code to the button event:
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);
}
}
Copy DogClass.h and ExportClass.lib files from the Exportclass file directory to the test program directory;
Add the #include "DogClass.h" line to the TestExportClassDlg.cpp, adding ExportClass.lib to the connector's import library, project->settings under vs setting For select all Configuration, and then add ExportClass.lib to the page below Object/library Conttrol.
Don't forget to copy the ExportClass.dll to the system directory or the current application directory, and then compile the OK.