设为首页 加入收藏

TOP

22.3.3 MFC常规DLL的创建实例
2013-10-07 13:12:19 来源: 作者: 【 】 浏览:74
Tags:22.3.3 MFC 常规 DLL 创建 实例

22.3.3  MFC常规DLL的创建实例

22.3.2小节介绍了创建MFC常规DLL的方法,本小节以一个实例讲解具体过程。在本小节实例实现的功能是创建一个通过MFC实现的对话框类,并在导出的接口函数中调用此对话框。具体过程为:

(1)按照22.3.2小节中介绍的方法,创建MFC常规DLL。

(2)在DLL工程中按照前面讲过的方法,添加一个对话框资源,并为此对话框资源创建派生自Cdialog类的对话框实例类,并在对话框内添加实现的功能。本实例中,实现单击对话框类中的按钮,则在静态框中显示欢迎词的功能。

(3)添加调用此对话框的接口函数。接口函数需要使用extern"C"__declspec(dllexport)修饰符指定,使其作为导出接口函数。代码如下:

  1. extern "C" __declspec(dllexport) void ShowDlg(void) // 显示对话框  
  2. {  
  3.     AFX_MANAGE_STATE(AfxGetStaticModuleState());  
  4.     CdlgDllTest dlg;            // 定义对话框变量  
  5.     dlg.DoModal();              // 显示对话框  

需要注意的是,此处在调用CdlgDllTest对话框前,需要调用AFX_MANAGE_STATE宏,此宏的功能是进行模块状态的切换,而AfxGetStaticModuleState()函数是在程序堆栈上创建一个AFX_MODULE_STATE类型的实例,以切换当前运行的模块状态。在动态链接MFC的常规DLL的每个接口函数中都需要调用此语句,或是在调用DLL的地方使用资源切换的方式(这种方式在第22.2节中介绍过)。不管哪种方式都需要进行运行程序状态切换,才可以完成对资源对话框的调用。

(4)添加完功能代码,编译链接DLL,生成RegMFCDLLSample.dll即可。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇22.2.9 屏蔽键盘Power键 下一篇22.3.4 MFC常规DLL的调用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: