前言
如果想要设计更好的软件,深入理解动态库是十分有必要的,因为动态库与大型C++软件的模块化息息相关。本文主要讲解什么是DLL,以及如何用visual studio生成自己的动态库,并调用自己生成的动态库。本文所介绍的也仅仅是windows下的动态链接库。
DLL简介
在windows系统上,dll文件和exe文件实际上是一个概念,他们都是有PE格式的二进制文件,不同之处在于PE文件头部中有个符号位表示该文件是exe还是dll。Windows平台上看到大量的大型软件都通过升级DLL的形式进行更新,微软经常将这些升级补丁积累到一定程度以后形成一个软件更新包。
DLL强调模块化,微软希望通过DLL机制来加强软件的模块化设计。将不同的模块交给不同的工程师维护,每个工程师每次测试自己的代码的时候也只需要编译自己维护的那个模块。
创建DLL
通过关键字__declspec(dllexport) 保证,当前函数是导出为dll的
void __declspec(dllexport) hello()