MFC如何使用动态连接库DLL

链接到静态库(*.lib)很简单,不多说.链接到DLL动态库分隐式链接和显式链接,显式链接较复杂,请参考MSDN这里学习一下隐式链接.

为隐式链接到 DLL,可执行文件必须从 DLL 的提供程序获取下列各项:

  1. 包含导出函数和/或 C++ 类的声明的头文件(.H 文件)
  2. 要链接的导入库(.LIB files)。(生成 DLL 时链接器创建导入库。)
  3. 实际的 DLL(.DLL 文件)

 

隐式链接需要一个由动态连接库产生的.LIB文件(导入库),并把它链接到应用程序的工程中.该导入库仅包含加载DLL的代码和实现DLL函数调用的代码。在导入库中找到外部函数后,会通知链接器此函数的代码在DLL中。要解析对DLL的外部引用,链接器只需向可执行文件中添加信息,通知系统在进程启动时应在何处查找 DLL 代码。

系统启动包含动态链接引用的程序时,它使用程序的可执行文件中的信息定位所需的DLL。如果系统无法定位DLL,它将终止进程并显示一个对话框来报告错误。如果找到了DLL,系统将DLL模块映射到进程的地址空间中。与程序代码的其余部分一样,DLL代码在进程启动时映射到进程的地址空间中,且仅当需要时才加载到内存中。

Windows将遵循下面的搜索顺序来定位DLL

  1. 包含EXE文件的目录
  2. 进程的当前工作目录
  3. Windows系统目录(system/system32)。GetSystemDirectory 函数检索此目录的路径。
  4. Windows目录.GetWindowsDirectory 函数检索此目录的路径。
  5. 列在Path环境变量中的一系列目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值