VS中创建和使用c++的dll动态库(转)
Published on 2022-05-12 10:21 in 分类: C/C++ , MFC-VS with 萧海~
分类: C/C++ , MFC-VS

VS中创建和使用c++的dll动态库(转)

    新建一个作为动态库的calc项目,包含如下.cpp和.h文件
    在这里插入图片描述
    接口ICalc.h如下:

    #pragma once
    #define CALC_API _declspec(dllexport)
    class CALC_API ICalc
    {
    public:
    //用于创建接口实例
    static ICalc* CreateInterface();
    public:
    //用于求和计算,a,b作为输入
    virtual int sum(const int a,const int b) = 0;
    };

    calc.h作为ICalc接口的派生类,派生ICalc接口定义的计算函数在calc.cpp中实现
    calc.h如下:

    #include "ICalc.h"
    class calc : public ICalc
    {
    public:
    //派生ICalc接口中的sum函数
    virtual int sum(const int a,const int b);
    };

    calc.cpp如下:

    #include <stdio.h>
    #include "calc.h"
    //实现创建一个calc实例
    ICalc* ICalc::CreateInterface()
    {
    return new calc();
    }
    //计算求和a+b
    int calc::sum(const int a,const int b)
    {
    return a+b;
    }

    计算的dll动态库实现后,编译生成dll文件和lib文件
    然后新建一个myCalc项目,myCalc项目中需要使用该calc.dll动态库
    在这里插入图片描述
    操作步骤:
    1.新建myCalc项目后,添加一个main.cpp,然后编译

    2.在myCalc项目路径下新建一个include文件夹存放接口ICalc.h文件
    在这里插入图片描述
    3.在myCalc项目路径下新建一个lib文件夹存放calc项目中编译生成的calc.lib文件
    在这里插入图片描述
    4.将calc项目编译生成的calc.dll复制到myCalc项目的输出目录下
    calc生成的calc.dll的路径参考下图的输出目录,具体路径看个人怎么配
    在这里插入图片描述
    同理,myCalc的输出目录也是在myCalc项目中的这个地方,具体路径看个人怎么配
    5.vs中配置myCalc项目如下
    (1)c/c++常规,附加包含目录,添加ICalc.h文件的在myCalc项目的存放路径
    在这里插入图片描述
    (2)链接器常规,附加库目录,将calc.lib在myCalc项目的存放路径添加上
    在这里插入图片描述
    main.cpp如下:

    #include <stdio.h>
    #include "ICalc.h"
    int main()
    {
    ICalc *myCalc = ICalc::CreateInterface();
    printf("a+b=%d",myCalc->sum(1,2));
    getchar();
    return 0;
    }

    https://blog.csdn.net/qq_41738624/article/details/122126863

    posted @   萧海~  阅读(308)  评论(0编辑  收藏  举报
    相关博文:
    阅读排行:
    · winform 绘制太阳,地球,月球 运作规律
    · AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
    · 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
    · 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
    · 上周热点回顾(3.3-3.9)
    历史上的今天:
    2021-05-12 有动画效果的 CheckBox
    2021-05-12 Qt 交换Layout中的QWidget控件位置
    2021-05-12 c++ 使用WinHTTP实现文件下载功能
    2021-05-12 C++ 程序崩溃时生成Dump文件
    2021-05-12 windows下qt程序崩溃后自动将程序拉起来
    2021-05-12 VC 为静态控件添加事件
    2021-05-12 [c++]TRACE 宏的利用
    点击右上角即可分享
    微信分享提示
    电磁波切换