VS动静态库之封装-使用(2)

一、前言

  同上文

二、库的调用

  • 系统:win10
  • 工具:VS2013

2.1 动态库的调用

2.1.2 使用步骤
  • 文件->新建->项目->win32项目,建立控制台项目

  • 项目属性->配置属性->链接器->常规->附加库目录,添加库地址

  • 项目属性->配置属性->链接器->输入->附加依赖项,添加库(由于已经添加库地址,这里直接写名字即可)

    注:填写的是.lib文件,而不是.dll。使用时需要将.dll和.lib放在同一个目录下。编译只需要lib文件即可,运行还需要.dll。如果没有,运行的时候就会提示,缺少xxxx.dll文件。

  • 将头文件和库文件复制到相应地址,修改dlltest.h,去掉dll_export定义,其他库有其他类似的设置方式。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #ifndef DLLTEST_H
    #define DLLTEST_H

    //#define dll_export 去掉该定义

    #ifdef dll_export
    #define CALL_Dll extern "C" __declspec(dllexport) // 此时为生成dll,为保证兼容,限制以C的方式
    #else
    #define CALL_Dll extern "C" __declspec(dllimport) // 此时为导入dll,为保证兼容,限制以C的方式
    #endif

    CALL_Dll int sum(const int x, const int y);
    CALL_Dll int sub(const int x, const int y);

    #endif
  • 建立main.cpp文件,写入以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    #include "stdio.h"
    #include "dlltest.h"

    void main()
    {
    printf("1+2=%d \n", sum(1, 2));
    printf("2-1=%d \n", sub(2, 1));
    }
  • 编译运行,如果提示缺少dll文件,请将dlltest.dll和dlltest.lib复制到项目生成的exe文件同一个目录下,如下图:

    验证结果是否正确

2.1.2 GitHub工程代码

  链接附上:https://github.com/coldspace/VSDllLib/tree/master/dllapp

2.2 静态库使用

2.2.1 使用步骤
  • 工程建立:

    同上

  • 项目属性->配置属性->链接器->常规->附加库目录,添加库地址

  • 项目属性->配置属性->链接器->输入->附加依赖项,添加库(由于已经添加库地址,这里直接写名字即可)

  • 将头文件和库文件复制到相应地址,无需修改头文件(与动态库不同)

  • 建立main.cpp文件,写入以下代码

    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    #include "LibTest.h"

    void main()
    {
    printf("1+2=%d \n", sum(1, 2));
    printf("2-1=%d \n", sub(2, 1));
    }
  • 编译成功即可运行(与动态库不同),验证结果是否正确

2.2.2 GitHub工程代码

  链接附上:https://github.com/coldspace/VSDllLib/tree/master/libapp

三、总结

  对于复杂的库,会有多个头文件,如配置文件,接口文件等,也会有多个依赖库,如果不懂,全部复制到同一个目录即可(滑稽)。

-------------本文结束感谢您的阅读-------------
0%