您的位置:首页 > 其它

Win32学习笔记——windows的库

2013-07-15 11:21 267 查看
一 	静态库
1. 静态库的特点
1.1 目标程序的归档。
1.2 静态库的代码会被嵌入到程序当中。
1.3 程序执行时不需要静态库存在。
2. C语言静态库
2.1 创建静态库
创建Win32静态库项目,使用*.c文件文件建立项目。
2.2 添加静态库函数
2.3 在程序中将静态库导入
2.3.1 项目中使用Setting里设置
2.3.2 使用关键字 pragma
#pragma comment(lib, "libname.lib")
2.4 使用静态库提供的函数
在c语言中直接使用函数即可。
3. C++语言的静态库
3.1 创建静态库
创建Win32静态库项目,使用*.cpp文件文件建立项目。
3.2 添加静态库的函数
3.3 导入静态库
3.3.1 项目中使用Setting里设置
3.3.2 使用关键字 pragma
#pragma comment(lib, "libname.lib")
3.4 定义库函数的原型
int CPP_Add(int nAdd1, int nAdd2) ;
3.5 使用静态库中提供的函数
3.6 注意
如果在CPP文件中使用C 语言的静态库,定义的静态库函数原型,需要增加extern  "C"
二 动态库
1 动态库的基本使用方法
2.1 动态库的创建
2.2 加载动态库
2.3 获取并使用库函数、变量、或类
2.4 释放动态库
2 动态库的函数
2.1 创建
2.1.1 创建Dll的项目
使用Win32 DLL 项目,创建DLL,添加相应文件。
2.1.2 增加动态库函数
2.1.3 导出动态库函数
1)使用_declspec(dllexport)方式:在函数前增加关键字。
2)增加 extern"C"方式,如果采用extern"C" _declspec(dllexport)。以C语言方式导出
需使用extern"C“方式函数原型
3)使用DEF文件导出
增加扩展名为DEF的文件到项目中。在DEF文件中添加导出定义
LIBRATY	DllFunc.dll	//导出库
EXPORTS				//导出表
Dll_Mul	@1			//导出函数
2.2 使用
2.2.1 隐式链接
1)导入LIB
项目设置或者#pragma comment(lib, "../lib/dllfunc")
2)定义函数原型
声明了一个和导出函数一致函数定义
3)使用函数
直接使用即可
4)应用程序查找DLL的路径
查找当前应用程序的同目录
查找当前的工作目录
查找Windows System32目录
查找Windows Sysmet 目录
查找Windows 目录
查找环境变量PATH指定的路径
2.2.2 显示链接
1)加载动态库
LoadLibrary
2)定义函数原型的函数指针
3)获取函数地址
GetProcAddress
对于使用_declspec(dllexport)导出的函数,由于函数名称发生变化,所以无法使用函数名称获取对应的函数地址。
extern"C"或DEF方式,可以正常的获取函数地址,所以尽量使用隐式链接的方式。
4)使用函数
5)释放动态库
FreeLibrary
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: