VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)

一、说明

通过前两篇的文章我们知道了封装一个Qt下的SDK库(dll动态链接库)和封装Pimpl模式。

Qt创建SDK库(dll动态库)并调用SDK库(dll动态库)

SDK(动态链接库dll)的封装技巧

本篇介绍在C++ VS下封装一个SDK库(动态链接库dll)

二、环境介绍

操作系统:windows 10 64位

VS:vs2022 64位

开发语言:C++

三、创建步骤

1、打开vs2022,创建新项目

 2、选择DLL(通用Windows)

 3、命名我们的动态库

会弹出选择最低和最高的平台版本:

 创建完成后,就如下所示:

如果需要使用其他的库,比如Eigen库,把Eigen库放到工程.sln文件所在文件夹内,在项目属性C/C++->常规->附加包含目录中添加Eigen所在目录路径即可。

在项目名称中,在exampleVSDLL.h添加一个类Calculation:

#pragma once

#ifdef DLL_CALCULATION
#define DLL_CALCULATION _declspec(dllexport)
#else
#define DLL_CALCULATION _declspec(dllimport)
#endif


class DLL_CALCULATION Calculation{
public:
    Calculation();

    int add(int a, int b);
 
    int subtract(int a, int b);
 
    int multiply(int a, int b);
 
    int divide(int a, int b);


};

在exampleVSDLL.cpp中添加:

#include "pch.h"
#include "exampleVSDLL.h"
 
 
Calculation::Calculation()
{
}
 
int Calculation::add(int a, int b)
{
    return ( a + b );
}
 
int Calculation::subtract(int a, int b)
{
    return ( a - b );
}
 
int Calculation::multiply(int a, int b)
{
    return ( a * b );
}
 
int Calculation::divide(int a, int b)
{
    return ( a / b );
}

在C/C++ 预处理器->预处理器定义,添加:

_CRT_SECURE_NO_DEPRECATE

DLL_CALCULATION

_CRT_SECURE_NO_DEPRECATE(不提示_s的函数,如strcpy_s,等的非安全版本的警告

DLL_CALCULATION用于区分引用该头文件的源文件需要导入dll还是导出dll,由此决定加在函数声明之前的宏定义 DLL_CALCULATION为导入命令还是导出命令

点击编译,即可在Release或Debug目录下看到生成的dll文件和lib文件。

三、dll的调用

1、创建一个C++控制台项目

 2、把上一步生成的exampleVSDLL.h、exampleVSDLL.dll和exampleVSDLL.lib文件拷贝到main函数所在的同一文件夹内。

3、在项目属性页:C/C++->常规->附加包含目录,添加exampleVSDLL.h头文件所在目录的路径;

 4、在项目属性页:链接器->常规->附加库目录,中添加依赖库所在目录路径,多个目录的以分号分隔。

  5、在项目属性页:链接器->输入->附加依赖项,中添加exampleVSDLL.lib。

 6、在main函数内写上调用函数就可以了。

#include <iostream>
#include "exampleVSDLL.h"

using namespace std;

int main()
{
    cout << "test call dll" << endl;

    Calculation calculation;

    int a = 10;

    int b = 5;

    cout<<"a + b = "<<calculation.add(a, b)<<endl;

    return 0;
}

上一篇:SDK(动态链接库dll)的封装技巧

下一篇:

本文原创作者:冯一川(ifeng12358@163.com),未经作者授权同意,请勿转载。

  • 5
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯一川

谢谢老板对我的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值