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)

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第1张图片

二、环境介绍

操作系统:windows 10 64位

VS:vs2022 64位

开发语言:C++

三、创建步骤

1、打开vs2022,创建新项目

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第2张图片

 2、选择DLL(通用Windows)

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第3张图片

 3、命名我们的动态库

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第4张图片

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

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第5张图片

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

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第6张图片

如果需要使用其他的库,比如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++控制台项目

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第7张图片

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

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第8张图片

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

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第9张图片

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

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第10张图片

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

VS2022中创建C++SDK库(dll动态库)并调用SDK库(dll动态库)_第11张图片

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

#include 
#include "exampleVSDLL.h"

using namespace std;

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

    Calculation calculation;

    int a = 10;

    int b = 5;

    cout<<"a + b = "<

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

下一篇:

本文原创作者:冯一川([email protected]),未经作者授权同意,请勿转载。

你可能感兴趣的:(SDK,c++,qt,开发语言)