访问MFC动态连接库
1:定义一个与连接库中相同的抽象类
class CShowDlg
{
public:
virtual void ShowNoteDlg(char *text)=0;//定义纯虚方法
};
2:定义两个函数指针类型,用于访问连接库中的函数
typedef CShowDlg *(*funGetShowDlg)();//定义函数指针类型
typedef void (*funReleaseShowDlg)(CShowDlg *p);
3:
void CUseMfcDllDlg::OnButton1()
{
HMODULE h=LoadLibrary("ResouecrDll.dll");//加载动态连接库
if(!h)
MessageBox("加载失败");
else
{
funGetShowDlg GetShowDlg=(funGetShowDlg)GetProcAddress
(h,"GetShowDlg");//获取函数
funReleaseShowDlg ReleaseShowDlg=(funReleaseShowDlg)
GetProcAddress(h,"ReleaseShowDlg");//获取函数
CShowDlg *p=GetShowDlg();
p->ShowNoteDlg("jjj");//调用连接库中方法构造CShowDlg方法
ReleaseShowDlg(p);//释放对象
}
}
本文介绍了如何通过定义抽象类及函数指针访问MFC动态连接库的方法。具体步骤包括定义与连接库中相同的抽象类、定义用于访问连接库中函数的函数指针类型,以及在对话框类中实现加载库、获取和调用函数、释放对象等功能。
663

被折叠的 条评论
为什么被折叠?



