在vs2017 IDE进行动态链接库的制作和使用

Posted madfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在vs2017 IDE进行动态链接库的制作和使用相关的知识,希望对你有一定的参考价值。

一、制作dll动态库

(1)创建动态库工程Dll-1,如图所示

技术图片

(2)新建Dll-1.h头文件

// Dll-1.h
#ifdef Dll_1_API
#else
#define Dll_1_API _declspec(dllimport)
#endif // Dll_1_API

Dll_1_API int add(int a, int b);
Dll_1_API int subtract(int a, int b);

 

其中,_declspec(dllimport)是为了声明add函数和substract函数从dll动态库导出,还可以用_declspec(dllimport)来声明类或者类的成员函数从dll动态库导出。

(3)新建Dll-1.cpp实现函数的功能

// Dll-1.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#define Dll_1_API _declspec(dllexport)
#include "Dll-1.h"
int add(int a, int b)
{
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

 

(4)右键项目,点击生成解决方案,同时会生成lib和dll文件。

二、新建调用动态库的测试项目Dll-1-test

(1)在项目中加入动态库的头文件

// Dll-1.h
#ifdef Dll_1_API
#else
#define Dll_1_API _declspec(dllimport)
#endif // Dll_1_API

Dll_1_API int add(int a, int b);
Dll_1_API int subtract(int a, int b);

 

(2)在源文件中调用dll动态库的方法

#include <stdlib.h>
#include <iostream>
#include "Dll-1.h"
using namespace std;

int main() {
    int x = 3; 
    int y = 6;
    int m = add(x, y);
    int n = subtract(x, y);
    cout << "m: " << m << endl;
    cout << "n: " << n << endl;
    system("pause");
    return 0;
}

 

(3)进行项目属性配置

在测试项目工程中配置lib文件的引入路径,同时将lib文件,dll文件复制到测试项目中。点击链接生成解决方案。

(4)运行测试项目

结果如下

技术图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于在vs2017 IDE进行动态链接库的制作和使用的主要内容,如果未能解决你的问题,请参考以下文章

VS2019 C++动态链接库的创建使用

VS2019 C++动态链接库的创建使用 - 如何导出类

VS2019 C++动态链接库的创建使用

Windows静态库和动态库的创建和使用(VS2005)

第1章 Linux系统编程入门:动态链接库的创建和使用

DLL动态链接库的创建与使用