一:静态库的创建

  1. VC++6.0中new一个的为win32 static library工程,之后有二个选项。根据需求选吧。
  2. 具体的类或者函数的添加过程和标准的工程一样,直接创建新的类或者添加新 
    的.h(例:MY.h)和.CPP(例:MY.cpp)文件。然后在其中编写实现。
  3. 完成后编译会生成一个.lib文件(例如:生成的是MY.lib)我生成的文件为TEST.lib                                                                                 .
  4. 编译有问题,去掉了一个long                                                                                        

  5. 提示错误修改方法                                                                                                        

二:动态库的创建

  1. VC++6.0中new一个的为win32 Dynamic-Link Library工程,之后有三个选项。根据需求选吧。
  2. 具体的类或者函数的添加过程和标准的工程一样,直接创建新的类或者添加新 
    的.h(例:MY.h)和.CPP(例:MY.cpp)文件。然后在其中编写实现。
  3. 完成后编译会生成一个.lib文件(例如:生成的是MY.lib)。     

三:静态库使用

静态库包括.lib和.h文件

1、在工程中加入静态库,有两种方法:

方法一:项目设置中引用.lib,project-setting-link-object/library modules中添 
加.lib;(需要在tools/options设置正确的引用路径)

方法二:在项目中直接加入lib,project-add to project-files,选择正确的.lib。

问题1:如此更改设置后,链接有错                                                                                                                

方法:

加入#pragma comment(lib, "MYTEST.lib")

将两个文件拷贝到use1.cpp相应的文件夹里,可以运行了。

2、在工程中包括.h文件;(可能 需要在tools/options设置正确的引用路径)

3、在工程中使用静态库中的函数;

四:动态库使用

动态链接库一般包括.lib(导出函数),.h,.dll。

1、隐式链接,同使用静态库相似,分为三步:引用.lib,包含头文件,使用导出函数;

2、动态加载,直接使用LoadLibrary 加载所需的动态库,然后指定所需的导出函数,效 
率最高!

3.编译链接通过,运行失败

发现创建方法不对,修改代码如下

将MYTEST3.dll拷贝到debug中,成功

学习参考:http://wenku.baidu.com/view/47507393daef5ef7ba0d3ca6.html

http://www.docin.com/p-65088206.html

在Windows下制作静态库和动态库的更多相关文章

  1. Windows下静态库与动态库的创建与使用

    Windows下静态库与动态库的创建与使用 学习内容:本博客介绍了Windows下使用Visual C++ 6.0制作与使用静态库与动态库的方法. --------CONTENTS-------- 一 ...

  2. 关于VS2013下制作和使用静态库和动态库

    关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...

  3. C语言静态库与动态库(Windows下测试)

    转载于:https://zhidao.baidu.com/question/1946953913764139388.html,原文为Linux上测试,本文为在Windows上编译测试 我们通常把一些公 ...

  4. Linux下C++静态库、动态库的制作与使用

    参考博文:C++静态库与动态库 >> 静态库 1. 静态库的制作 a) 编辑 name.cpp 和name.h文件 b) $g++ -c name.cpp //注意带参数-c,否则直接编译 ...

  5. linux系统环境下的静态库和动态库的制作

    linux系统下的应用编程需要系统提供的库文件,包括静态库或动态库.不管是静态库还是动态库,都是编译好的二进制文件.在我们编译程序时要链接的目标文件,静态库是链接的时候直接编译到程序里,和程序成为一体 ...

  6. Windows下静态库、动态库的创建和调用过程

    静态库和动态库的使用包括两个方面,1是使用已有的库(调用过程),2是编写一个库供别人使用(创建过程).这里不讲述过多的原理,只说明如何编写,以及不正确编写时会遇见的问题. //注:本文先从简单到复杂, ...

  7. Linux下制作静态库 & 动态库

    静态库 1.将.c生成.o文件 gcc-cadd.c-o add.o 2.使用ar工具制作静态库 ar rcs lib库名.a add.o sub.o div.o 3.编译静态库到可执行文件中 gcc ...

  8. Linux下制作和使用静态库和动态库

    概述 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库.linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib. 静态函数库: 这类库的名字一般是libxxx. ...

  9. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

随机推荐

  1. HDU1003 最大子段和 线性dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others)  ...

  2. javascript初学者注意事项

    注:以下属于个人学习中的理解不能保证全部正确,如果有错误以后修正. 1.javascript和c#语言一样严格区分大小写,有没有类的概念. 2.所有的变量声明都使用var,虽然能打出蓝色int,但却不 ...

  3. 基于vue-cli的快速开发框架

    基于vue-cli的快速规范开发框架,已封装常用组件,可直接进行基本项目开发 1,遵循eslint规则,提升代码质量 2,集成mock模拟服务端数据,提升开发效率 3,集成vuex,可直接使用开发 4 ...

  4. Linux基础命令之文件过滤及内容编辑处理(二)

    . wc 用于统计文件的行数,单词,或字节数 -l # 统计行数 -L # 打印最长行的长度,一般脚本中判断字符长度 -c # 统计字节数 -w # 统计单词数 -m 统计字符数 . iconv 转换 ...

  5. SMB重放攻击

    0x01 原理 正常情况下:client端 --------- server端 1.正常情况,当client端登陆时需要先输入username,password和domain[默认是.,表示本地],之 ...

  6. sqli-labs学习(less-1-less-4)

    学习sqli-labs之前先介绍一些函数,以便于下面的payload看的懂 group_concat函数 将查询出来的多个结果连接成一个字符串结果,用于在一个回显显示多个结果 同理的还有 concat ...

  7. IntelliJ IDEA教程之如何clean或者install Maven项目

    一.前言 Eclipse中如果我们想clean或者install工程,我们只需要右键工程,然后找到run->Maven install 或者run->Maven clean就可以了,但是I ...

  8. 北京Uber优步司机奖励政策(4月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. Java类的加载的一个小问题

    前言 之前写了一篇文章专门介绍了一下类的加载和对象的创建流程,然后收到了一个博友的疑问,觉得蛮好的,在这里和大家分享下. 博文地址:[Java基础]Java类的加载和对象创建流程的分析 疑问 类在加载 ...

  10. python 实现字符串的切片功能

    '''string切片''' def string_split(stringone,split): m = [] if type(split)!=str: return False if split ...