这一篇以VS2013为例子介绍怎样编写一个静态链接库和调用。

1、打开VS2013,新建Visual C++ 的win32项目:

新建后工程分支如下:

添加头文件和源文件:

编写头文件和源文件内容:

调用静态链接库

编写调用程序:

其中,#pragma comment(lib,"staticLibSrc.lib")的作用是引入lib文件,不加这一句的话,也可以在工程的配置中引入,也就是先添加VC++目录中的包含目录和库目录,然后到连接器的输入中添加lib文件的名称:

通过上面这种方式也可以引入lib文件。但是这样还不够,上面是设置了在工程里引入lib文件,还需要把lib文件拷贝到相应的位置(也就是上图设置的位置,我上面这么写的话就只要跟工程中的cpp文件放一起就OK):

这样就OK了,编译的时候就不会报错找不到lib文件。

两点注意:

  1. 编译得到的静态链接库可以放在任意位置,但是在编写调用它的程序的时候一定要配置工程环境,或者说让编译器知道调用的静态链接库放置在哪里;
  2. 调用静态链接库的exe文件一旦生成就不再需要静态链接库了,这个时候就不需要把静态链接库的.h文件和.lib文件跟exe文件放置在一起。

二年寄迹闽山寺,一笑翻然向浙江。

明月不知君已去,夜深还照读书窗。

  -- 刘子翚《绝句送巨山》

VC++ DLL 2 静态链接库的更多相关文章

  1. vc下的静态链接库与动态链接库(一)

    一.静态库与动态库的区别 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Lib ...

  2. 动态链接库dll,静态链接库lib, 导入库lib

    转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libar ...

  3. Qt 共享库(动态链接库)和静态链接库的创建及调用

    前言: 编译器 Qt Creator, 系统环境 win7 64 位 1.创建共享库: 新建文件或项目->选择 Library 和 c++ 库->选择共享库->下一步(工程名为 sh ...

  4. lib静态链接库,dll动态链接库,h文件

    最近在弄摄像头,发现我在调用摄像头自带的函数的时候,库没连接上,于是经过高人指点,学习了一下lib静态链接库,dll动态链接库来补充一下自己的基础知识. 一.首先我们来介绍一下lib静态链接库. li ...

  5. VC++中的C运行时库浅析(控制台程序默认使用单线程的静态链接库,而MFC中的CFile类已暗藏了多线程)

    1.概论 运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的.C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于 ...

  6. 动态链接库dll,导入库lib,静态链接库lib

    目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库” ...

  7. dll和lib(包括静态链接库和与dll同时生成的lib)

    转:http://blog.csdn.net/galaxy_li/article/details/7411956 1:神马是Dll和Lib,神马是静态链接和动态链接 大家都懂的,DLL就是动态链接库, ...

  8. 静态链接库(lib)、动态链接库(dll)与动态链接库的导入库(lib)

    静态链接库与动态链接库相对应.动态链接库的导入库不同于以上两种库. 1.静态链接库(lib)     程序编译一般需经编辑.编译.连接.加载和运行几个步骤.在我们的应用中,有一些公共代码是需要反复使用 ...

  9. 介绍静态链接库和动态链接库的差别,及在VC++6.0中的建立和使用

    首先介绍一下链接库:链接库分为动态链接库和静态链接库两种 LIB是静态链接库,在程序编译连接的时候是静态链接,其相应的文件格式是.lib. 即当程序採用静态链接库的时候..lib文件里的函数被链接到终 ...

随机推荐

  1. VUE - 取消默认事件

    1,在 methods 中 <template>   <div>       <form @submit="addTodo">          ...

  2. .net core文件系统简介

    在asp.net core程序中,我们可以通过如下代码开启对Web 根目录内的文件静态访问功能: app.UseStaticFiles(); 如果要提供更高级的选项,例如:将其它的物理文件夹下的文件作 ...

  3. Word 写论文的一些教训和经验

    参考文献 写正文时就在引用位置添加参考文献的title,写完后,在百度学术或谷歌学术中搜索参考文献获取GB/T 7714的参考格式,在参考文献的章节为文献编号,在引用位置插入交叉引用. 插图 可以先在 ...

  4. Window Server 2019 配置篇(4)- 配置WDS实现自动部署服务

    上次我们建立了hyper-v集群,那么我们这次需要对集群内的客户机和外部的服务器进行自动部署,这时候需要WDS服务 WDS服务是一种自动部署服务,能够对无OS的计算机进行操作系统的部署 首先建立虚拟机 ...

  5. RadioGroup的使用

    前言: 使用RadioGroup就可以在选择情况多的时候,简化代码 RadioGroup 使用互斥选择时,会使用RadioGroup标签下面RadioButton,如下面的代码:(这样写下来,男和女的 ...

  6. PyPI提供双因素身份验证(2FA),已提高下载安全性

    前天,Python的核心开发团队宣布PyPI现在提供双因素身份验证(2FA),以提高Python包下载的安全性,从而降低未经授权的帐户访问的风险.该团队宣布将在Python Package Index ...

  7. 51nod 1352:集合计数

    1352 集合计数 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 给出N个固定集合{1,N},{2,N-1},{3,N-2},...,{N-1,2 ...

  8. 洛谷 三月月赛 B

    搞出每一位与前一位的差,然后区间修改只是会影响区间的端点,所以只修改一下端点的值就好. %%%高一神犇线段树 #include<bits/stdc++.h> #define N 10000 ...

  9. Oracle 新建用户、赋予权限

    1.新建用户 新建用户: create User username Identified by password 修改用户密码: alter User username Identified by p ...

  10. java se

    集群 数据库集群.服务器集群.内存 java特性 封装:封装细节和封装变化(可能发生需求变更的代码必须要封装,set方法除了完成赋值功能外,还能处理额外的任务,记录访问的人) 继承 多态 访问限定符 ...