XYY Game Engine 封装和使用
XYY Game Engine 封装和使用
c++封装
将c++项目封装为一个动态链接库,向外只提供接口,这样不仅仅方便发行,更可以加快成程序运行的速度。将XYY项目封装的步骤如下:
- 将所有的声明定义为导出,以类作为示范。
即将
1 | class XYY_GlobalDriver : public XYY_Driver |
更改为
1 | class __declspec(dllexport) XYY_GlobalDriver : public XYY_Driver |
- 删除main函数,并写以下两个文件
1 | //XYY_Game_Engine.h |
1 | //XYY_Game_Engine.cpp |
- 更改解决方案类型为dll
- 将此处改为自己想要的
生成解决方案
在解决方案目录中即可找到
将项目的cpp文件删除,即将所有的实现删除只留下声明的接口,将刚刚插入的所有 __declspec(dllexport) 删除
打包发布。
动态链接库的使用
- 添加库目录和头文件目录以及添加对lib文件的依赖。
添加对lib文件的依赖也可以使用这样的预处理指令:
1 |
将dll文件放在项目的根目录下,或者放在和项目的解决方案exe的同目录。
示例,发现加载速度极快,因为所有的文件都是编译过的,但我不明白为什么加载也会加快。
构建DLL项目规范
项目结构
首先必须将声明和实现相分离。
项目在实现的时候就将code目录加入到包含目录中,即可以使用 #include <file.h> 自包
将所有使用到的代码全部放在code目录下,包括GLSL等,这样项目构建和项目使用就没有差别了。用户只需要将提供的code文件夹加入包含目录即可,当然,code文件夹是随意的,即为项目根目录也可。
提供项目本身代码 include 文件夹以及项目依赖dependence文件夹,用户需要把这两个文件夹放入包含目录中.
使用以下两种方法避免重复包含。推荐使用后一种。
1 |
或者
1 | //XYY_Game_Engine.h |
- 写好注释
http://myblog.cuimouren.cn/2021/07/10/XYY-Game-Engine-%E5%B0%81%E8%A3%85%E5%92%8C%E4%BD%BF%E7%94%A8/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 这里是文耀的space!