zoukankan      html  css  js  c++  java
  • dll的封装和使用

    背景

    在windows平台下,要实现函数的封装,一般采用的是dll动态库的形式
    实现了函数的封装就意味着实现过程的隐藏
    可以实现跨平台和跨语言的使用

    实施步骤

    生成dll动态库

    1. 在VS中生成新项目,应用类型选择DLL
    2. 新建文件(由于生成的都为CPP文件,此时也新建CPP文件)
    3. 编写代码,实现函数,编译生成dll动态库
    extern "C" //extern "C"指定使用C语言的方式编译,不加入这句话的话,无法在C语言中调用
    {
    	__declspec(dllexport)
    		//函数实现
    	__declspec(dllexport)
    		//函数实现
    }
    

    使用dll动态库

    第一种方法:

    1. 将生成的dll动态库复制到项目所在可执行程序目录下
    2. 将生成的.lib文件复制到项目源文件目录下
    3. 在使用前载入文件(在头文件中声明)
    #ifndef __DLLNAME_H
    #define __DLLNAME_H
    #pragma comment(lib, "dllname.dll")
    //加入函数声明
    #endif
    
    1. 载入头文件

    第二种方法:

    1. 将生成的dll动态库和lib文件复制到.c文件同级目录
    2. 在属性,连接器,输入中添加依赖项,输入lib名
    3. 载入头文件

    dll调用原理

    dll没有主函数,无法直接运行
    exe在运行的时候,可以调用dll,将其加载到所属内存中执行
    exe只是调用dll的功能

    动态库与静态库的区别

    动态库在编译时独立,运行时加载。可以只改变动态库,而不改变可执行程序。同时,动态库中的代码与位置无关
    静态库在编译时候编入可执行文件。

  • 相关阅读:
    stl_heap
    关于随机数 C++
    关于if语句的细节
    C++关于智能指针
    sqlyog
    win10 64位 汇编环境
    Qt 乱码
    Vux使用经验
    Flex布局新旧混合写法详解
    【原】npm 常用命令详解
  • 原文地址:https://www.cnblogs.com/cj5785/p/10664796.html
Copyright © 2011-2022 走看看