码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-11-23 16:41:07      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:VS2017   dllexport   类的成员   image   bst   space   img   解决   end   

一、制作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进行动态链接库的制作和使用

标签:VS2017   dllexport   类的成员   image   bst   space   img   解决   end   

原文地址:https://www.cnblogs.com/madFish/p/11918248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!