VS2022 C++创建和调用DLL动态链接库(包括子类的第三方库)
正在做的项目越来越大,都在一个项目里面就太臃肿了,编译起来耗费的时间越来越久,代码文件太多又难找,快速浏览的读条都要等好久,我是终于开始正视链接库的重要性了。项目大了还是得过这关啊。搞清楚了整套方法后就写下这篇以免日后忘记了。
下面第3点一定要注意。
0.什么内容要写成DLL链接库
可以用模块的角度去看,假设现在一个软件有读取,处理,输出的功能。那么可以将它视为有读取模块、处理模块和输出模块。看处理模块里面又能分为几个处理不同需求的功能,那么又可以视作功能A模块,功能B模块等。
如果功能A模块和功能B模块之间没有依赖,那么就是我分开写他们也不会出问题,那么我可以把功能A模块写一个DLL项目,功能B也写另一个DLL项目。另外,读取模块也可以写成一个DLL项目。
以读取模块为例,我的读取模块是要实现读取3D模型文件的,包括STL,OBJ,PLY这些格式的模型文件。那么我这个读取模块写成一个DLL项目,项目内创建四个类,其中一个Reader抽象类作为基类,另外三个类STLReader,OBJReader和PLYReader继承Reader类,这四个类作为这个读取模块。
而软件主体就视作一个框架,引用这些模块则相当于调用DLL动态链接库。
创建DLL动态链接库之前要搞清楚你的需求。
创建DLL动态库和LIB静态库在我看来最直接的区别是,DLL动态库能够直接正常引用第三方库库,LIB静态库试了没成功。
1.从创建解决方案开始新建一个项目
首先创建一个控制台项目,也可以是空项目。这个项目视为你的主项目,或者说是软件的框架了。主项目要引用你的各个模块。
2.创建一个DLL动态链接库项目
创建DLL项目跟创建控制台项目一样, 有模板可以选,不用模板的话可以创