电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C动态链接库解析

C动态链接库解析_第1页
1/8
C动态链接库解析_第2页
2/8
C动态链接库解析_第3页
3/8
精品文档---下载后可任意编辑一,动态链接库的基本概念1.DLL(Dynamic Linker Library)的概念可以把 DLL 看做是一个仓库,它提供了一些可以直接拿来用的变量,函数或者类(但是不建议从 DLL 中猎取变量),在历史的进展中,仓库经历了从“无库 - 静态链接库 - 动态链接库”的时代。静态链接库(.lib)和动态链接库(.dll)都是共享代码的方式。假如采纳了静态链接库,则无论你愿不同意 lib中的代码指令都被直接包含进了最终生成的.exe 程序中。但若是使用了动态链接库,该 DLL 则不会被包含进.exe 程序中,当.exe 程序执行的时候,再“动态”的来引用或者卸载 DLL。DLL 文件可以被其他的语言所调用,例如 C#或者 Java 等。譬如 Window 下的存在大量的 DLL 文件,当我们用 Java 编写 Swing 界面或者其他语言如 C#等都是可以进行调用的。我们在 Window 系统下面的 system32 文件夹中会看到 kernel.dll、user32.dll 和gdi32.dll。Window 系统下的大多数 API 都是包含在这些 DLL 中。kernel.dll 中的函数主要处理内存管理和进程的调度。user32.dll 中的函数主要控制用户界面。gdi32.dll 中的函数主要负责图形方面的操作。从上图中可以看出,静态链接库和动态链接库都是在程序的“链接”阶段进行调用的,但是静态库和动态库的链接方式是不一样的。静态库的链接是把.lib 的代码指令全部链接到最终生成的 EXE 程序中。动态链接库的链接是只链接.dll 文件的地址引用,因此生成的 EXE 程序中不包含.dll 的代码指令,所以.dll 生成的可执行程序要比.lib 生成的小很多,根据实验,一个仅包含 printf 的函数的生成程序,在静态链接库中需要 800k,而动态链接库只需要 8k 左右,可以见其差 100 倍。二,静态库的创建和调用① 创建一个 Win32 控制台应用程序精品文档---下载后可任意编辑② 点击下一步③ 选择静态库应用程序类型,去掉预编译和安全检查后,点完成。精品文档---下载后可任意编辑④ 项目创建完成后,添加 MathUtils 类⑤ 编写 MathUtils 类的.h 和.cpp 文件,为打包成静态库做准备精品文档---下载后可任意编辑⑥① 根据上面的方式再创建一个项目,这里起名为 TestLibDemo,注意这里的程序类型是控制台应用程序。然后编写 main.cpp 文件。② 静态连接库的调用需要引入.h 文件和.lib 文件,因此我们把上面创建的 MathUtils 项目里的MathUtils.h 和 M...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C动态链接库解析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部