访问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);//释放对象
}
}