• 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
  • 相关阅读:
    LDA模型了解及相关知识
    GAN
    tensorflow学习6
    GAN的文献综述
    python相关工具
    tensorflow学习5----变量管理
    tensorflow学习5----GAN模型初探
    8月14日至8月20日技术积累
    8月7日至8月13日技术积累
    8月1日到8月6日技术要点
  • 原文地址:https://www.cnblogs.com/ygdblogs/p/5382523.html
Copyright © 2020-2023  润新知