VS2015静态库与动态库的使用

来源:互联网 发布:加权余量法 知乎 编辑:程序博客网 时间:2024/05/23 11:30

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;            }

方式二:
通过项目属性指定链接属性,使在链接期能够找到需要链接的静态库文件
设置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;}

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

动态库

动态库的静态链接

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

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

动态库的动态链接

LoadLibrary()
GetProcAddress()
FreeLibrary()

参考:http://blog.csdn.net/yyhero1/article/details/19272637

原创粉丝点击