使用MFC DLL

本文仅供学习交流,严禁用于商业用途,如本文涉及侵权请及时联系本人将于及时删除

应用程序与DLL链接后,DLL才能通过应用程序调用运行。应用程序与DLL链接的方式主要有如下两种:隐式链接和显式链接。

隐式链接又称为静态加载,指的是使用DLL的应用程序先链接到编译DLL时生成的导入库LIB文件,执行应用程序的同时操作系统自动加载所需的DLL。在应用程序退出之前,DLL一直存在于该程序运行进程的地址空间中。

显式链接又称为动态加载,使用显式链接DLL的应用程序必须在代码中动态地加载所使用的DLL,并使用指针调用DLL中的导出函数,在使用完毕后,应用程序必须卸载所使用的DLL。

9.3.1 使用隐式链接

使用隐式链接除了需要相应的DLL文件外,还必须具备以下2个文件:
Ø 包含导出函数以及类声明的头文件
Ø DLL 的导入库 LIB 文件
通常情况下,以上各文件是由DLL的开发者提供的。编译时将DLL的LIB文件加入应用程序中,主要有如下2种方法。

(1) 选择"项目"|"添加现有项..."菜单命令,在弹出的"添加现有项"对话框中选择所需的LIB文件;或者是右击项目中的"源文件"文件夹,在快捷菜单中选择"添加"|"现有项..."菜单命令。如图所示。

(2) 在程序的StdAfx.h头文件中加入下列语句。

#pragma comment (lib,"指定的LIB文件名")

9.2节创建了3个动态链接库,由于它们创建导出函数的方法不一样,使用它们时,也略有不同。

【例9.4】创建一个单文档的应用程序MFCImLink,隐式链接例9.1创建的MFCLibraryDll.dll,使用其中的导出函数求正方形的面积。

执行"链接DLL"|"链接MFCLibraryDll"菜单命令,输入数据后,运行效果如图所示。

(1) 使用MFC应用程序向导创建一个基于对话框的应用程序MFCImLink。

(2) 布局对话框资源,并设置控件属性、添加成员变量。

(3) 将例9.1项目中的MFCLibraryDll.h头文件和MFCLibraryDll.lib库文件复制到项目MFCImLink根目录下,并将它们添加到项目中。

(4) 在MFCImLink.cpp文件中添加包含导出函数AreaSquare()声明的头文件语句#include "Regulardll.h",并为计算按钮添加命令消息处理函数。

cpp 复制代码
void CMFCImLinkDlg::OnBnClickedBtnCalu()
{
	// TODO:  在此添加控件通知处理程序代码
	UpdateData();
	m_square = AreaSquare(m_input);
	UpdateData(false);
}

(5) 编译、链接并运行程序。

相关推荐
可均可可39 分钟前
C++之OpenCV入门到提高005:005 图像操作
c++·图像处理·opencv·图像操作
zyx没烦恼44 分钟前
【STL】set,multiset,map,multimap的介绍以及使用
开发语言·c++
机器视觉知识推荐、就业指导1 小时前
基于Qt/C++与OpenCV库 实现基于海康相机的图像采集和显示系统(工程源码可联系博主索要)
c++·qt·opencv
myloveasuka2 小时前
类与对象(1)
开发语言·c++
ROC_bird..3 小时前
STL - vector的使用和模拟实现
开发语言·c++
机器视觉知识推荐、就业指导3 小时前
C++中的栈(Stack)和堆(Heap)
c++
Mr_Xuhhh5 小时前
递归搜索与回溯算法
c语言·开发语言·c++·算法·github
无敌岩雀5 小时前
C++设计模式行为模式———命令模式
c++·设计模式·命令模式
爱吃生蚝的于勒7 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
小白学大数据9 小时前
Python爬虫开发中的分析与方案制定
开发语言·c++·爬虫·python