zoukankan      html  css  js  c++  java
  • VC DLL 动态链接库(二)

      DLL 中导出函数的声明有两种:

      1. 在之前给出的在函数声明中加上 __declspec(dllexport), 在这就不再列举了

      2. 采用模块定义(.def) 文件声明, .def 文件为连接器提供了有关被连接程序的的导出, 属性及其他方面的信息

      下面让我们看看怎样用 .def 文件将函数 add 声明为 DLL 导出函数(需在 dllTest 工程中添加 lib.def 文件):

    // lib.def
    LIBRARY dllTest
    EXPORTS add @1

      .def 文件的规则为:

        (1) LIBRARY 语句说明 .def 文件相应的 DLL;

        (2) EXPORTS 语句后要列出要导出函数的名称,可以在 .def 文件中的导出函数名后加 @n, 表示要导出函数的序号为 n;

        (3) .def 文件中的注释由每个注释行开始处的分号指定,且注释不能和语句在同一行。

      由前文可以知道库分为静态库和动态库 DLL,深入到 DLL 内部, 其调用方式也分为静态与动态。

      静态调用方式的特点是由编译系统完成对 DLL 的加载和应用程序结束时 DLL 的卸载, 当调用某 DLL 的应用程序结束时,若系统中还有其他程序使用该 DLL, 则 Windows 对 DLL 的应用记录减一, 知道所有使用该 DLL 的程序都结束时才释放它, 静态调用方式简单实用, 但不如动态调用方式灵活。

    转载请注明出处:http://www.cnblogs.com/ygdblogs
  • 相关阅读:
    第二章:变量和简单数据类型
    第四章:操作列表
    第三章:列表简介
    老男孩Day6作业:计算器
    老男孩Day5作业:电子银行购物商城
    老男孩Day4作业:员工信息查询系统
    老男孩Day3作业:工资管理系统
    老男孩Day2作业:购物车程序
    改进地图的vo类
    slam kf
  • 原文地址:https://www.cnblogs.com/ygdblogs/p/5382523.html
Copyright © 2011-2022 走看看