这几天总结的一些C++编程经验--关于静态库
来源:互联网 发布:sql截取字符串前几位 编辑:程序博客网 时间:2024/06/05 13:21
VC动态链接库的分类
Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库)、MFC Regular DLL(MFC规则DLL)、MFC Extension DLL(MFC扩展DLL)。
非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;
MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;
MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用。
静态链接库
在VC++6.0中new一个名称为libTest的static library工程,并新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下:
//文件:lib.h
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y); //声明为C编译、连接方式的外部函数
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
编译这个工程就得到了一个.lib文件,这个文件就是一个函数库,它提供了add的功能。将头文件和.lib文件提交给用户后,用户就可以直接使用其中的add函数了。
标准Turbo C2.0中的C库函数(我们用来的scanf、printf、memcpy、strcpy等)就来自这种静态库。
下面来看看怎么使用这个库,在libTest工程所在的工作区内new一个libCall工程。libCall工程仅包含一个main.cpp文件,它演示了静态链接库的调用方法,其源代码如下:
#include <stdio.h>
#include "../lib.h"
#pragma comment( lib, "..//debug//libTest.lib" ) //指定与静态库一起连接
int main(int argc, char* argv[])
{
printf( "2 + 3 = %d", add( 2, 3 ) );
}
静态链接库的调用就是这么简单,或许我们每天都在用,可是我们没有明白这个概念。代码中#pragma comment( lib , "..//debug//libTest.lib" )的意思是指本文件生成的.obj文件应与libTest.lib一起连接。
- 这几天总结的一些C++编程经验--关于静态库
- 这几天关于dwr的一些心得
- 关于这几天面试失败的总结
- 关于这几天的
- 些C++高级编程经验--关于静态库
- 这几天的总结
- 这几天的总结
- 这几天的总结
- 转载_关于MTK socket编程的一些经验
- 关于调试PLX9054的一些总结和经验
- 关于动态规划的一些经验与总结
- 关于调试PLX9054的一些总结和经验
- 这几天关于流媒体服务器方面学习的总结
- 自己这几天关于Jquery和easyui的总结
- 这几天的一些事
- 这几天的一些知识点
- 关于一些编程问题的记录总结
- 关于Matlab编程的一些小总结
- o3d模型变换 (转)
- o3d_shapes (转)
- Window 操作系统 DOS 常用命令说明
- class中virtual函数和virtual函数=0的意义
- o3d基本程序框架-(转 这个比我写的全面)
- 这几天总结的一些C++编程经验--关于静态库
- using namespace std的使用(转载)
- 关于afx的由来
- 什么是COM?(转)
- UML之父:架构业务需求与软件开发的桥梁
- maven2 setting
- 4月3号烦恼..
- 随便说说`
- 中国人必须知道的76个常识。。。看了才发现,自己知道的实在太少了