conkeyn 发表于 2013-2-7 15:03:00

MFC规则DLL的调用

笔者编写了如图12的对话框MFC程序(下载本工程附件)来调用5.3节的MFC规则DLL,在这个程序的对话框上点击“调用DLL”按钮时弹出5.3节MFC规则DLL中的对话框。

http://www.pconline.com.cn/pcedu/empolder/gj/vc/0509/pic/05-09-22-vc-12.jpg
图12 MFC规则DLL的调用例子
  下面是“调用DLL”按钮单击事件的消息处理函数:

void CRegularDllCallDlg::OnCalldllButton()

{

typedef void (*lpFun)(void);


HINSTANCE hDll; //DLL句柄

hDll = LoadLibrary("RegularDll.dll");

if (NULL==hDll)

{

MessageBox("DLL加载失败");

}



lpFun addFun; //函数指针

lpFun pShowDlg = (lpFun)GetProcAddress(hDll,"ShowDlg");

if (NULL==pShowDlg)

{

MessageBox("DLL中函数寻找失败");

}

pShowDlg();

}

  上述例子中给出的是显示调用的方式,可以看出,其调用方式与第4节中非MFC DLL的调用方式没有什么不同。
我们照样可以在EXE程序中隐式调用MFC规则DLL,只需要将DLL工程生成的.lib文件和.dll文件拷入当前工程所在的目录,并在RegularDllCallDlg.cpp文件(图12所示对话框类的实现文件)的顶部添加:

#pragma comment(lib,"RegularDll.lib")

void ShowDlg(void);

  并将void CRegularDllCallDlg::OnCalldllButton() 改为:

void CRegularDllCallDlg::OnCalldllButton()

{

ShowDlg();

}
 
http://www.cppblog.com/ivenher/articles/1322.html
页: [1]
查看完整版本: MFC规则DLL的调用