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
相关文章推荐
- Win32学习笔记 - Windows 常用消息大全
- 达内学习笔记-win32开发windows.h文件
- Win32应用程序工程学习笔记一 - 构建第一个窗口
- Redis学习笔记~Redis在windows环境下的安装
- windows程序设计学习笔记-多文档界面
- Windows GDI学习笔记——基本概念
- Windows驱动开发工具 WDK 学习笔记(1)
- Windows Security 学习笔记
- boost.asio 学习笔记05——asio的windows实现
- SDK学习笔记-Windows消息机制
- Windows 8学习笔记(三)--RichTextBlock和MessageDialog
- 关于直播学习笔记-005-nginx-rtmp-win32在Win10上使用
- Win32学习笔记 第二章 Unicode
- boost.asio 学习笔记05——asio的windows实现
- [NOTE] Windows&Linux动态链接库学习笔记
- Windows 8 Directx 开发学习笔记(十三)利用模板实现木箱镜像
- laravel学习笔记(1)- windows中wamp环境composer使用中openssl问题解决
- boost.asio 学习笔记05 asio的windows实现
- Windows 8 学习笔记--各种流之间的转换
- Windows Internet - WinINet 学习笔记(1)