VS2015静态库与动态库的使用

VS2015静态库与动态库的使用

静态库

  1. 静态库创建(略),往往我们使用第三方的比较常见,如果要自己团队间创建使用也很简单;
  2. 头文件的加载: 
    • 方式一: 
      (1)将静态库给出的头文件拷贝到项目目录下(*.vcxproj所在的目录); 
      (2)在项目中添加该头文件:右键–》添加–》现有项–》选中刚才拷贝的头文件; 
      (3)在需要使用的文件中#include “*.h” 包含刚才的头文件。
    • 方式二:
    • 在项目属性中配置头文件的查找路径 
      指定头文件查找目录
  3. 库文件的加载: 
    首先需要将*.lib同样拷贝到项目目录下 
    方式一:
            使用#pragma comment(lib, "***.lib")
            #include "stdafx.h"
            #include "ConsolLib.h"
            #include <iostream>

            #pragma comment(lib, "ConsolLib.lib")

            int main()
            {
                int tmp = AddTwo(10, 30);
                std::cout << "tmp =" << tmp << std::endl;
                return 0;
            }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

方式二: 
通过项目属性指定链接属性,使在链接期能够找到需要链接的静态库文件 
设置lib所在目录
指定静态库的名字

#include "stdafx.h"
#include <iostream>
#include "ConsolLib.h"

//#pragma comment(lib, "ConsolLib.lib")

int main()
{
    int tmp = AddTwo(10, 30);
    std::cout << "tmp =" << tmp << std::endl;
    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

方式三: 
右键–》添加现有项–》添加*.lib 
这里写图片描述

动态库

动态库的静态链接

动态库的使用包含三个方面: 
* 1. 头文件(*.h) 
需要_declspec(dllexport)引用接口 
同时使用extern “C”{ …… }包含起来,extern只是提示编译器变量或函数只是定义在其它地方 
导入方法:(同静态库) 
方法一:直接将头文件拷贝到项目目录; 
方法二:在项目属性中配置头文件的查找路径

    1. 引入库(*.lib) 
      使用_declspec(dllexport)标记导出的接口,才会生成引入库,否则只会生成动态库。 
      它的导入跟静态库类似,不再赘述。只是让编译器找到它的声明符号。
    1. 动态库(*.dll) 
      动态库的导入方法: 
      方法一:将*.dll拷贝到项目目录下 
      方法二:通过指定项目调试属性,而非直接拷贝方式 
      属性配置–》调试–》工作目录 
      这里写图片描述
      方法三:通过制定vs2015环境变量 
      这里写图片描述

动态库的动态链接

LoadLibrary() 
GetProcAddress() 
FreeLibrary()

猜你喜欢

转载自blog.csdn.net/weixin_41940752/article/details/80505814