以前都是适用纯算法的动态库,现在要使用动态库封装对话框。认真研究了一下微软vs2008提供的DllScreenCap例子,自己设计了一个动态库。
(1) 建立一个MFC工程取名为ExportClass,然后点击下一步。
(2) 选择Regular DLL using shared MFC DLL,点击完成
(3) 插入一个对话框,ID:IDD_TEST_DLL
(4) 插入一个类,取名TestDLLDlg
(5) 插入一个button控件,ID:IDC_TEST_MSG
(6) 双击button控件,并在函数添加代码:
void CTestDLLDlg::OnBnClickedTestMsg()
{
MessageBox(_T("测试程序"));
}
(7) 添加一个头文件,取名为Export.h。添加代码:
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
void WINAPI ShowDlg();
#ifdef __cplusplus
}
#endif
(8) 添加一个cpp文件,取名Export.cpp。并添加代码:
#include "stdafx.h"
#include "ExportClass.h"
#include "Export.h"
#include "TestDLLDlg.h"
void WINAPI ShowDlg()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CTestDLLDlg dlg;
dlg.DoModal();
MessageBox(NULL,_T("程序运行到这里"),NULL,MB_OK);
}
(9) 打开ExportClass.def,并添加代码:
ShowDlg @ 2
(10) 一个封装对话框的动态库建立,只需编译生成相应的dll和lib文件。
测试程序:
(1) 建立一个基于对话框工程,并对话框上面添加测试按键。
(2) 拷贝原来生成的lib、dll和export.h文件到本工程下面。
(3) 在测试对话框的cpp文件里面添加:
#include "Export.h"
#pragma comment(lib,"ExportClass.lib")
(4) 在测试按键对应的消息函数里面添加:
ShowDlg();
运行该工程就可以对动态库进行测试。