首页 理论教育 VisualC++高级编程技术与实例:测试MFCDLL

VisualC++高级编程技术与实例:测试MFCDLL

时间:2023-11-16 理论教育 版权反馈
【摘要】:下面是具体的测试步骤:使用MFC AppWizard建立一个基于对话框的程序项目USEMFCDLL,所有项目设置缺省。把MFCEXTDLL项目的Student.h拷贝并添加到USEMFCDLL项目中,同时,也把MFCEXTDLL.LIB和MFCEXTDLL.DLL两个文件拷贝到USEMFCDLL文件夹下。接下来,我们要为本项目的对话框添加MFCEXTDLL.DLL 中的菜单资源。程序清单3-6CUSEMFCDLLDlg::OnInitDialog函数因为这里使用的菜单是从DLL加载到对话框中的,所以我们无法使用ClassWizard为菜单项ID_TEST_TESTDLL添加它的命令处理函数。程序清单3-7CUSEMFCDLLDlg::OnTestTestDLL函数最后,设置项目Link属性,编译链接运行应用程序。

VisualC++高级编程技术与实例:测试MFCDLL

前面完成了扩展MFC的开发,接下来我们就建立一个基于对话框的应用程序项目,并在其中使用MFCEXTDLL.DLL从而来测试它的正确性。下面是具体的测试步骤:

(1)使用MFC AppWizard(exe)建立一个基于对话框的程序项目USEMFCDLL,所有项目设置缺省。编辑对话框模板,删掉模板中原有的显示内容,保留“确定”和“取消”按钮

(2)把MFCEXTDLL项目的Student.h拷贝并添加到USEMFCDLL项目中,同时,也把MFCEXTDLL.LIB和MFCEXTDLL.DLL两个文件拷贝到USEMFCDLL文件夹下。

(3)接下来,我们要为本项目的对话框添加MFCEXTDLL.DLL 中的菜单资源。这里使用显式链接的方式加载DLL,并使用API函数LoadMenu 和SetMenu 及DrawMenuBar为对话框添加并显示菜单。这些功能要在对话框的初始化函数OnInitDialog中实现,其代码如程序清单3-6所示。

程序清单3-6 CUSEMFCDLLDlg::OnInitDialog函数

(4)因为这里使用的菜单是从DLL加载到对话框中的,所以我们无法使用ClassWizard为菜单项ID_TEST_TESTDLL添加它的命令处理函数。但我们可以使用手工的方式添加命令(消息)映射和响应函数。首先,为CUSEMFCDLLDlg类添加命令映射:

其次,在CUSEMFCDLLDlg类中添加响应函数,如下所示:(www.xing528.com)

再次,在USEMFCDLLDlg.cpp文件中编辑响应函数OnTestTestDLL的实现代码见程序清单3-7。

程序清单3-7 CUSEMFCDLLDlg::OnTestTestDLL函数

最后,设置项目Link属性(把MFCEXTDLL.LIB添加到Project Settings对话框的Link页中,具体方法参见本章3.3.3节),编译链接运行应用程序。在运行的应用程序中,选择菜单命令“测试DLL”,就会弹出如图3-11的对话框,这说明我们的DLL和应用程序完全正确。

图3-11 测试应用程序的界面和对话框

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈