• 动态链接库Dll的编写与使用


    前言

    本文章主要是以一种简易的方式帮助大家编写和使用DLL。关于DLL是什么,网上有很多解说,这里就不废话了。

    实现功能

    1、DLL导出函数
    2、DLL导出类

    一、生成DLL

    1、新建一个C++的空项目工程,这里取工程名为myDll
    2、创建myDll.cpp和myDll.h文件
    3、代码编写如下:
    myDll.h文件
    注:使用 __declspec(dllexport) 关键字从 DLL 中导出数据、函数、类或类成员函数

    #pragma once
    //导出函数
    __declspec(dllexport) int Add(int a, int b);  //加法函数
    __declspec(dllexport) int Sub(int a, int b);  //减法函数
    
    //导出类
    class __declspec(dllexport) CMyDll
    {
    public:
     int Mul(int a, int b); //乘法函数
     int Div(int a, int b); //除法函数
     };
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    myDll.cpp文件

    #include "myDll.h"
    /*函数实现*/
    int Add(int a, int b)
    {
     return a + b;
    }
    int Sub(int a, int b)
    {
     return a - b;
    }
    int CMyDll::Mul(int a, int b)
    {
     return a * b;
    }
    int CMyDll::Div(int a, int b)
    {
     return a / b;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    4、生成dll 动态链接库文件
    1)按下图配置项目属性
    在这里插入图片描述2)右键项目名,选择生成即可生成dll文件
    在这里插入图片描述5、生成lib静态链接库文件
    1)按下图配置项目属性
    在这里插入图片描述
    2)右键项目名,选择生成即可生成lib文件
    在这里插入图片描述

    二、使用DLL

    1、新建一个C++的空项目工程,这里取工程名为useDll
    2、创建一个useDll.cpp文件
    3、将myDll工程项目生成的dll、lib文件和myDll.h文件拿过来,放置在useDll项目中
    在这里插入图片描述
    4、添加myDll.h文件到useDll的工程项目中
    在这里插入图片描述
    5、useDll.cpp代码如下

    #include 
    #include "./include/myDll.h"
    #pragma comment (lib, "./dll/myDll.lib")
    //动态库在运行时,会把代码链接到目标
    //静态库在编译期,会把代码链接到目标
    int main()
    {
     int a = 6, b = 2;
      //使用导出函数
     std::cout << "a + b = " << Add(a, b) << std::endl;
     std::cout << "a - b = " << Sub(a, b) << std::endl;
     //使用导出类
     CMyDll myDll;
     std::cout << "a * b = " << myDll.Mul(a, b) << std::endl;
     std::cout << "a / b = " << myDll.Div(a, b) << std::endl;
     std::getchar();
     }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    6、右键useDll的项目名,选择生成即可生成exe文件
    运行结果如下:
    在这里插入图片描述

  • 相关阅读:
    华为全联接大会2022丨华为云打造可信认证体系,加速开发者成长
    浅谈城市综合管廊分类及其运维管理-Susie 周
    【Android知识笔记】进程通信(三)
    python爬取B站视频
    Python 深度学习导入的一些包的说明
    内存的映射
    [ExRandom lib-examples]
    grafana+prometheus+loki的使用
    如何判断linux 文件(或lib)是由uclibc还是glibc编译出来的?
    正则表达式(在API文档中搜索类Pattern,可以看到正则表达式的规则)
  • 原文地址:https://blog.csdn.net/NICHUN12345/article/details/127328948