基于VS2017的DLL的创建与使用

本文详细介绍了如何在Visual Studio 2017中创建和测试动态链接库(DLL)。首先,通过新建项目选择动态链接库模板创建DLL库,定义头文件和源文件,实现导出函数。接着,创建测试项目,添加引用,编写调用DLL库的代码。最后,编译生成DLL及LIB文件,将其复制到测试项目中,完成DLL库的使用。
摘要由CSDN通过智能技术生成

基于VS2017的DLL的创建与使用

参考文献:
动手 | 奶奶级的动态库入门

1、工具准备

VS2017:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/

2、步骤

2.1、建立DLL库

1、打开VS2017,文件——新建——项目,选择Windows桌面向导——命名文件名——选择文件保存路径,确定
在这里插入图片描述

2、选择动态链接库——空项目。确定
在这里插入图片描述

3、确定后如图进行选择
在这里插入图片描述

4、右击头文件——添加——新建项,按图步骤选择,添加
在这里插入图片描述

在头文件里添加如下代码
在这里插入图片描述

#ifndef TESTDLL_H
    #define TESTDLL_H

    // 条件编译指令
    // 在预处理器里事先定义好_DLLAPI,保证dll项目有预定义;
    // 而新程序项目里没有,从而区分导入和导出。
    #ifdef _DLLAPI
        #define DLLAPI __declspec(dllexport)  // 导出
    #else
        #define DLLAPI __declspec(dllimport)  // 导入
    #endif

    // 声明导出函数
    DLLAPI int add(int a, int b);  // 导出add接口

#endif

5、相同步骤,并按图操作,添加
在这里插入图片描述

同样步骤在源文件中添加如下代码
在这里插入图片描述

#include "testdll.h"

int add(int a, int b)  // 函数实现
{
    return a + b;
}

6、选中testDLL并右击——属性后按如图步骤输入_DLLAPI,一路确定退出。
在这里插入图片描述

7、同样选中testDLL右击选择生成,此时可在该路径下看到这些文件。
在这里插入图片描述

2.2、测试DLL库

1、选中解决方案右击——添加——新建项目,并按图所示操作。确定
在这里插入图片描述

按图所示选择。确定
在这里插入图片描述

2、在test项目中选中源文件右击——添加——新建项目,并按图选择操作。添加
在这里插入图片描述

将如下代码添加进去
在这里插入图片描述

#include <iostream>
#include "../testDll/testdll.h"  
#pragma comment(lib, "testDll.lib")  // 隐式调用,类似静态库但不同

using namespace std;

int main()
{
    int a, b;
    cout << "input 2 integer:";
    cin >> a >> b;

    // 调用
    printf("%d + %d = %d", a, b, add(a, b));

    return 0;
}

2.3、最后一步

1、在刚刚创建的文件夹下找到2.1步骤创建的testDLL文件夹下的testdll.cpp、testdll.h文件复制2.2步骤的test文件夹下
在这里插入图片描述
在这里插入图片描述

2、将2.1-7步骤生成解决方法时生成的testDLL.dll、testDLL.lib文件复制到2.2步骤的test文件夹下
在这里插入图片描述
在这里插入图片描述

3、在test项目中选中头文件——添加——现有项,在test项目文件夹下选中testdll.h文件
在这里插入图片描述

4、训中test右击——属性——链接器——常规——附加库目录,选择生成的Release文件。一路确定退出
在这里插入图片描述

5、选中test右击——生成,会在以下路径生成对应exe文件,
在这里插入图片描述

或者选中test右击——设为启动项目,然后选择调试——开始执行,输入111 333后Enter,出现如下结果,成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值