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
  • 相关阅读:
    使用NSTask调用shell
    《UML和模式应用》读书笔记(一)
    iOS网络编程
    多线程
    Quartz2D
    沙盒中的数据存取
    UIButton设置为圆形按钮并增加边框
    Mac开发快速入门
    JavaWeb学习总结(三)response与request
    JavaWeb学习总结(二) Servlet
  • 原文地址:https://www.cnblogs.com/ygdblogs/p/5382523.html
Copyright © 2011-2022 走看看