向动态链接库中添加C++类和资源
在动态链接库中不仅可以包含函数,还可以包含C++类和各种资源文件。下面将介绍如何向动态链接库中添加C++类和资源。具体步骤如下:
(1)单击“File/New”菜单项,打开“New”窗口,选择“Projects”选项卡,如图1所示。
.jpg)
图1 新建工程窗口
(2)在列表中选择“MFC AppWizard(dll)”选项,表示创建MFC动态链接库,在“Project name”编辑框中输入动态链接库的名称。单击“OK”按钮进入MFC应用程序向导窗口,如图2所示。
.jpg)
图2 MFC应用程序向导窗口
(3)保留默认的设置,单击“Finish”按钮完成工程的创建。在动态链接库的源文件中定义一个C++类。
#define EXPORTDLL _declspec(dllimport) //定义一个宏
EXPORTDLL class CTextDlg //定义CTextDlg类
{
public:
virtual void __stdcall ShowTextDlg(char* pchText) //定义一个成员函数
{
MessageBox(NULL,pchText,"提示",0); //弹出提示对话框
}
};
注意:为了能够让客户端访问动态链接库中类CTextDlg的方法,CTextDlg类方法必须是虚方法。
(4)定义两个全局函数,分别用于构建和释放一个CTextDlg类对象。
CTextDlg* __stdcall GetTextDlg() //定义一个全局函数
{
return new CTextDlg(); //构造一个CTextDlg对象
}
void __stdcall ReleaseTextDlg(CTextDlg* pTextDlg) //定义一个全局函数
{
delete pTextDlg; //释放CTextDlg对象
}
(5)在工作区的资源视图窗口中导入一个位图,如图3所示。
.jpg)
图3 资源视图窗口
(6)在工作区的文件视图窗口中打开“Resource.h”文件,观察资源文件“IDB_BACKGROUND”对应的资源ID值,本例为“2000”。
(7)编译并运行程序,将生成dll文件。