教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

MFC常规DLL的创建与访问

来源:网络收集 时间:2026-07-30
导读: 关于mfc技术的入门文档 MFC常规DLL的创建与访问 谢命坚 湖南商务职业技术学院 410205 高了软件开发和维护的效率。因此,动态链接库备受软件技术人员的青睐。 1 动态链接库(DLL)的概念 引言 动态链接库(DLL)是Windows编程的重

关于mfc技术的入门文档

MFC常规DLL的创建与访问

谢命坚  湖南商务职业技术学院  410205

高了软件开发和维护的效率。因此,动态链接库备受软件技术人员的青睐。

1 动态链接库(DLL)的概念

引言

动态链接库(DLL)是Windows编程的重要技术。使用DLL技术有很多优点,不仅能让多个应用程序、甚至是不同语言编写的应用程序可以共享一个DLL文件,真正实现资源“共享”,缩小了应用程序的执行代码,更加有效地利用了内存,而且DLL文件作为一个单独的程序模块,封装性、

独立性好。这在编程时十分有用,大大提

动态链接库(Dynamic LinkLibrary,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。你可以简单地把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。如果采用静态链接库,则库中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。

Visual C++支持三种DLL,它们分别是非MFC动态库、MFC常规DLL、MFC扩展DLL。非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用

图1  学生基本信息对话框程序所调用;MFC常规DLL 包含一

表1  学生基本信息对话框添加的控件个CWinApp派生类,但没有消息循

环功能,常规DLL又可分为静态链接到MFC和动态链接到MFC两种;MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用。

AppWizard(exe)创建一个默认的单文档应用程序Ex_SDI。

(2)在工程Ex_SDI中创建如图1所示的学生基本信息对话框资源IDD_STUINFO,添加的控件如表1所示,创建此对话框类为CStuInfoDlg。

(3)完善CStuInfoDlg类代码①打开类向导的Member Variables页面,看Class name是否是CStuInfoDlg,依次为下列控件增加成员

2 MFC常规DLL的创建

第一步 创建一个默认的单文档(或多文档)应用程序,并添加资源(如对话框)。

(1)用MFC

表2  控件变量

关于mfc技术的入门文档

变量,如表2所示。

②为CStuInfoDlg类添加一个BOOL型成员变量m_bMale,并在CStuInfoDlg类设置该变量的初始值,代码如下:

CStuInfoDlg::CStuInfoDlg(CWnd*pParent /*=NULL*/)

: CDialog(CStuInfoDlg::IDD,

pParent)

{m_bMale=FALSE;   }③用MFC的类向导为CStuInfoDlg类添加WM_INITDIALOG消息映射,并添加如下代码:

BOOL CStuInfoDlg::OnInitDialog(){

CDialog::OnInitDialog();if  (!m_bMale)

CheckRadioButton

(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_FEMALE);

    else

    CheckRadioButton

(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);

m_comboSpecial.AddString("机械

工程及自动化");

m_comboSpecial.AddString("电气

工程及自动化");

    m_comboSpecial.AddString("计算机科学");

    m_strSpecial="计算机科学";    UpdateData(FALSE);return TRUE;}

④用MFC的类向导为单选按钮IDC_RADIO_MALE添加BN_CLICKED的消息映射,并添加如下代码:

void CStuInfoDlg::OnRadioMale(){   m_bMale=TRUE;}

⑤用MFC的类向导为单选按钮IDC_RADIO_FAMALE添加BN_CLICKED的消息映射,并添加如下代码:

void CStuInfoDlg::OnRadioFemale()

{m_bMale=FALSE; }

⑥用MFC的类向导为按钮IDOK添加BN_CLICKED的消息映射,并添加如下代码:

void CStuInfoDlg::OnOK()

库设为使用静态链接库。

UpdateData();(2)将EX_DLL工程中的Debug目m_strName.TrimLeft();录中的两个文件EX_DLL.dll和Ex_DLL.m_strNo.TrimLeft();lib复制到Ex_USEDLL工程目录中。    if (m_strName.IsEmpty())(3)打开文件stdafx.h,添加下列

MessageBox("必须要有姓代码:

名!");# progma comment(lib,"Ex_DLL")

else if (m_strNo.IsEmpty())extern "C"_declspec(dllimport) int           MessageBox("必须要有ShowStuInfoDlg();学号!");( 4)打开菜单资源

elseIDR_MAINFRAME,添加一个顶层菜单

           CDialog::OnOK();“操作”,在该菜单下添加一个子菜单}“测试”(ID_OP_TEST)。第二步 创建MFC常规DLL(5)用MFC类向导在CMainFrame(1)用MFC AppWizard(dll)创建类中添加ID_OP_TEST菜单的一个工程Ex_DLL,确定DLL的类型时选COMMAND消息映射,并在消息映射函择“动态链接库使用共享MFC DLL”。数中添加下列代码:

(2)将应用程序Ex_SDI中的对话Void CMainFrame::OnOpTest()框资源IDD_STUINFO和类CStuInfoDlg{ShowStuInfoDlg();}复制并添加到工程Ex_DLL,然后将(6)编译运行并测试。StuInfoDlg.cpp中的#include “Ex_SDI.3.2 显式链接h”该成#include “Ex_DLL.h”。显式链接是应用程序在执行过程中随

(3)在Ex_DLL.cpp文件的最后,时可以加载或卸载DLL文件,所以显式链添加导出函数ShowStuInfoDlg,代码如接具有更好的灵活性。要实现显式链下:接,首先在应用程序中用LoadLibrary或

extern "C"_decls …… 此处隐藏:3730字,全部文档内容请下载后查看。喜欢就下载吧 ……

MFC常规DLL的创建与访问.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1444547.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)