• 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

  • 相关阅读:
    MRO C3算法 super的运用
    约束 抛异常
    反射
    Ubuntu
    Vim
    Vim
    Arithmetic
    Docker-常用命令
    Docker
    Docker-LAMP开发环境
  • 原文地址:https://www.cnblogs.com/xiaohai123/p/16261353.html
Copyright © 2020-2023  润新知