我正在开发一个需要一些数学的 3d 游戏引擎,但我想通过将数学放入库来更好地调整我的代码。现在我正在使用一个名为“DataTypes.hpp”的头文件,它包含我的引擎需要的所有结构和数据类型。这还包括我的数学文件“VMMath.hpp”(它用作包装器),在这里我包括我的向量、矩阵和四元数类的其他四个头文件。
我的方法是我希望 DataTypes 成为一个预编译的头文件,并且 VMMath 代码成为一个库(静态或 dll,老实说我不确定哪个)。那时我不必将 DataType 标头放在所有 VMMath 源中,并减少项目的相关源文件。
从我所见,一个库必须是一个标头和源,它使用 extern 或 static 关键字,因此标头可以使用源中的方法。MSDN 上的示例显示了命名空间中的一个类,它没有带有静态方法的构造函数/析构函数。但我发现真正向您展示它的能力有点短。
那么是否可以从这种文件结构创建一个库:
<-项目目录->
(其他来源/文件夹)
数学数学
-- VMMath.hpp
数学
-- CVector2.hpp
-- CVector2.cpp
-- CPoint2.hpp
-- CVector3.hpp
-- CVector3.cpp
-- CPoint3.hpp
-- CVector4.hpp
-- CVector4.cpp
-- CMatrix3.hpp
-- CMatrix3.cpp
-- CMatrix4.hpp
-- CMatrix4.cpp
-- CQuaternion.hpp
-- CQuaternion.cpp
我希望这是有道理的。所以我可以看到这个工作的一种方法是让 VMMath.hpp 里面有所有的类,并且 VMMath.cpp 包含所有的类源,但这不是很容易维护。或者我必须将每个类作为单独的 dll 吗?
这是我读过的 codeproject 的一篇文章,但它没有显示包含多个文件的 dll:http: //www.codeproject.com/Articles/6351/Regular-DLL-Tutor-For-Beginners
我希望我说清楚了,如果我产生了太多的阅读,请原谅。