在Windows下制作静态库和动态库
一:静态库的创建
- VC++6.0中new一个的为win32 static library工程,之后有二个选项。根据需求选吧。
- 具体的类或者函数的添加过程和标准的工程一样,直接创建新的类或者添加新
的.h(例:MY.h)和.CPP(例:MY.cpp)文件。然后在其中编写实现。- 完成后编译会生成一个.lib文件(例如:生成的是MY.lib)我生成的文件为TEST.lib .
编译有问题,去掉了一个long
- 提示错误修改方法
二:动态库的创建
- VC++6.0中new一个的为win32 Dynamic-Link Library工程,之后有三个选项。根据需求选吧。
- 具体的类或者函数的添加过程和标准的工程一样,直接创建新的类或者添加新
的.h(例:MY.h)和.CPP(例:MY.cpp)文件。然后在其中编写实现。- 完成后编译会生成一个.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下制作静态库和动态库的更多相关文章
- Windows下静态库与动态库的创建与使用
Windows下静态库与动态库的创建与使用 学习内容:本博客介绍了Windows下使用Visual C++ 6.0制作与使用静态库与动态库的方法. --------CONTENTS-------- 一 ...
- 关于VS2013下制作和使用静态库和动态库
关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...
- C语言静态库与动态库(Windows下测试)
转载于:https://zhidao.baidu.com/question/1946953913764139388.html,原文为Linux上测试,本文为在Windows上编译测试 我们通常把一些公 ...
- Linux下C++静态库、动态库的制作与使用
参考博文:C++静态库与动态库 >> 静态库 1. 静态库的制作 a) 编辑 name.cpp 和name.h文件 b) $g++ -c name.cpp //注意带参数-c,否则直接编译 ...
- linux系统环境下的静态库和动态库的制作
linux系统下的应用编程需要系统提供的库文件,包括静态库或动态库.不管是静态库还是动态库,都是编译好的二进制文件.在我们编译程序时要链接的目标文件,静态库是链接的时候直接编译到程序里,和程序成为一体 ...
- Windows下静态库、动态库的创建和调用过程
静态库和动态库的使用包括两个方面,1是使用已有的库(调用过程),2是编写一个库供别人使用(创建过程).这里不讲述过多的原理,只说明如何编写,以及不正确编写时会遇见的问题. //注:本文先从简单到复杂, ...
- Linux下制作静态库 & 动态库
静态库 1.将.c生成.o文件 gcc-cadd.c-o add.o 2.使用ar工具制作静态库 ar rcs lib库名.a add.o sub.o div.o 3.编译静态库到可执行文件中 gcc ...
- Linux下制作和使用静态库和动态库
概述 Linux操作系统支持的函数库分为静态库和动态库,动态库又称共享库.linux系统有几个重要的目录存放相应的函数库,如/lib /usr/lib. 静态函数库: 这类库的名字一般是libxxx. ...
- Linux下Gcc生成和使用静态库和动态库详解(转)
一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...
随机推荐
- 轻量级IOC容器:Ninject
Ninject是一个快如闪电.超轻量级的基于.Net平台的依赖注入框架.它能够帮助你把应用程序分离成一个个松耦合.高内聚的模块,然后用一种灵活的方式组装起来.通过使用Ninject配套你的软件架构,那 ...
- 4D产品(DLG、DEM、DOM、DRG)介绍及区别
4D产品(DLG.DEM.DOM.DRG)是什么? 4D产品是指DRG(数字栅格地图).DLG(数字线化图) .DEM(数字高程模型).DOM(数字正射影像图).4D 复合产品是将4D产品中的任意两种 ...
- 提取win10默认锁屏壁纸
win10锁屏设置为windows聚焦时锁屏会有好看的图片出现.想让一张好看的图片一直使用,就去提取出来然后设置一下. 找到C盘:用户目录下 找到你的主机名文件夹: 在查看的选项栏中将隐藏文件夹显示: ...
- java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-01722: 无效数字 ### The error ...
- koa2实现简单的图片上传
1.安装koa-body 2.引入koa-body const koa = require('koa'); const fs = require('fs'); const koaBody = requ ...
- 由Handle转换为控件
Control c = Control.FromHandle(this.textBox1.Handle); TextBox f = c as TextBox;
- 洛谷 1440 求m区间内的最小值
洛谷 1440 求m区间内的最小值 题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. ...
- VC编译连接选项详解
VC编译连接选项详解 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在“使用”它,而不会想去“了解”它.因为它只是一个工具,我们宁可把更多的精力 ...
- rabbitMQ的三种路由模式
rabbitMQ工作流程: 1.声明交换机 2.声明消息队列 3.绑定交换机和队列 4.生产者往交换机里发送新消息 5.交换机根据所选的模式和routingKey决定消息发往哪条消息队列 6.一个消费 ...
- 【PaPaPa】系统架构搭建浅析 - 人人可以搭架构
声明 [PaPaPa]这个项目是以技术分享与研究为目的而做的,并非商业项目,所以更多的是提供一种思路,请勿直接在项目中使用. 上一篇隐藏开源项目地址实属无奈,为了寻找一起做这件事的同伴不得已刷了一天推 ...












